Pourquoi le code ci-dessous n'est-il pas compilé? Par souci de concision, je voudrais le code à écrire de cette manière, ce qui semble syntaxiquement OK, mais compilateur gcc Linux se plaintInstanciation de fonctions et initialisation de variables en même temps
#include <stdio.h>
void fn(int in, char ch, char* str);
int main()
{
fn(int i2 = 20, char ch2 = 'Z', char* str2 = "Hello");
printf("in2 = %d, ch2 = %c, str2 = %s\n", in2, ch2, str2);
return;
}
void fn(int in, char ch, char* str)
{
printf("int = %d\n", in);
printf("ch = %c\n", ch);
printf("str = %s\n", str);
return;
}
Même dans C99 (qui est aussi ANSI C), vous ne pouvez pas avoir de déclaration à l'intérieur d'une expression ... –