声明错误终止和C中声明语法错误之间的区别

时间:2018-07-16 15:36:35

标签: c

我想知道何时会发生这种差异声明终止错误和声明语法。

我的声明终止错误代码:

int a=12,245;

和声明语法错误的代码:

int a=10 20 30;

3 个答案:

答案 0 :(得分:1)

你可以说

int a = 12245;

您正在将a初始化为整数12245。

你可以说

double a = 12.245;

您正在将a初始化为浮点十进制数12.245。

如果您想使人们感到困惑,您也许可以说

int a = (12,245);

这就像说“我想将a初始化为12,不,我是245”。 (a最终将持有245)。

但是你不能说

int a = 12,245;

在C语言中,逗号可以用几种不同的方式使用,但是也有几种不能使用的方式。

在C源代码中,必须使用句号.作为小数点,并且不能使用逗号将数字分组为数千或十万或其他任何数字。

您可以使用逗号来分隔函数调用中的参数,或者一次声明多个变量,或者使用逗号运算符。但是这些都完全不同,int a = 12,245;最终并没有适合任何一个。

为完整起见,以下是函数调用中的参数分隔逗号:

printf("%d %c %s %f\n", 1, '2', "three", 4.5);

以下是逗号分隔多个声明:

int a = 12, b = 245;

以下是逗号运算符:

for(i = 0, j = n; i < j; i++, j--)

答案 1 :(得分:0)

Integer不能对10,3之类的浮点值进行录音,Integer只能存储180之类的自然数!如果要使用浮点值,请使用 float double

答案 2 :(得分:0)

在C中没有区别。这两个程序均不符合该语言的语法。

C没有指定编译器产生的错误或警告消息的文本。大多数编译器会尽力产生错误消息,以帮助程序员理解错误是什么。有些人比其他人做得更好,但没有一个是完美的。

您正在使用的任何编译器,在其当前版本中,都会针对该代码生成两个不同的错误消息。它是如何决定产生哪个消息的,可能只有该编译器的作者才能告诉您。如果您认为一个或另一个错误消息严重误导您,则可以提交错误报告或正式投诉,如果您使用的编译器具有某种用户支持渠道,则您可以执行其中一项操作。