Friday, April 03, 2009

C-Ansi e Complementos do LCCWIN32

Olá pessoal, lembram quando eu disse que os compiladores podem se tornar um pesadelo a parte? Eu tenho um exemplo de diferentes implementações da linguagem C no código abaixo relacionado aos ponteiros e endereços. O LCCWIN32, apesar de C-ANSI, também implementa outros módulos (dialetos)... é possível ativar "apenas" o modo C-ANSI, assim o código abaixo NÃO irá compilar por conta da função change2. O que fazer nesse emaranhado de padrões? Atenham-se ao C-ANSI, nós vamos fazer isso de hoje em diante.

Alessandro Ikeuchi



#include <stdio.h>

/* A chamada abaixo é C-ANSI, note
que é necessário o uso constante do
ponteiro para manipular os valores
que estão no endereço */

void change1(int *var)
{
*var += 1;
}

/* Esta função NÃO compilará em
compiladores configurados para
somente aceitarem C-ANSI, ela
compila no LCCWIN32 por conta
dos complementos ativados */

void change2(int &var)
{
var += 1;
}

int main()
{
int var = 12;
change1(&var);
change2(var);
printf("%d\n", var);
return 0;
}

No comments: