以下のコードがコンパイルされないのはなぜですか?簡潔にするために、私は文法的にOKと思われる、このように書かれるコードを、たいのですが、C89(ANSI C)にあなたは変数を宣言することができますので、LinuxのGCCコンパイラは、唯一の初めに同時にインスタンス化関数と変数の初期化
#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;
}
C99(これもANSI Cです)でも、式の中に宣言を入れることはできません... –