ID do artigo: 30580 - Última revisão: segunda-feira, 9 de janeiro de 2006 - Revisão: 4.0

Como declarar uma matriz de ponteiros para funções no Visual C++

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Observação Microsoft Visual C++ .NET 2002 e Microsoft Visual C++ .NET 2003 oferecem suporte o modelo de código gerenciado fornecido pelo Microsoft .NET Framework e o modelo de código do Windows de Microsoft nativo não gerenciado. As informações neste artigo se aplicam somente ao código do Visual C++ não gerenciado.Microsoft Visual C++ 2005 oferece suporte a dois o modelo de código gerenciado que é fornecido pelo Microsoft .NET Framework e modelo de código não gerenciado Microsoft Windows nativo.

Nesta página

Expandir tudo | Recolher tudo

Sumário

O exemplo abaixo demonstra a criação de uma matriz que contém endereços de função e chamar essas funções.

Código de exemplo

/*
 * Compile options needed: none
 */ 

#include <stdio.h>

void test1();
void test2();            /*  Prototypes */ 
void test3();

/* array with three functions */ 
void (*functptr[])() = { test1, test2, test3 } ;

void main()
{
   (*functptr[0])();    /*  Call first function  */ 
   (*functptr[1])();    /*  Call second function */ 
   (*functptr[2])();    /*  Call third function  */ 
}

void test1()
{
   printf("hello 0\n");
}

void test2()
{
   printf("hello 1\n");
}

void test3()
{
   printf("hello 2\n");
}
				

A informação contida neste artigo aplica-se a:
  • Microsoft C Professional Development System 6.0a
  • Microsoft Visual C++ 1.0 Professional Edition
  • Microsoft Visual C++ 1.5 Professional Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbinfo kbhowto kblangc KB30580 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 30580  (http://support.microsoft.com/kb/30580/en-us/ )