gcc
即使该文件另存为,下面的代码行也会给编译器带来错误check.c
。该错误是在该行void swap_address(int& a, int& b)
作为
错误:“&”标记之前的预期“;”,“,”或“)”
我已经使用此命令来编译C文件: gcc -o check check.c
但是如果我使用以下g++
编译器,则相同的代码可以正常工作:g++ -o check check.c
请为我提供了为什么它是工作的原因g++
,而不是为了gcc
。
代码:
#include <stdio.h>
void swap_value(int a, int b)
{
a=a+b;
b=a-b;
a=a-b;
}
void swap_address(int& a, int& b)
{
a=a+b;
b=a-b;
a=a-b;
}
int main()
{
int i=5,j=3;
swap_value(i,j);
printf("%d%d\n", i, j);
swap_address(i,j);
printf("%d%d\n", i, j);
return 0;
}
swap_address()
具有参考参数,文件扩展名为“ .c”,因此gcc
假设它是C文件,并且由于参考参数不是C的一部分而产生错误。
g++
将文件视为C ++,因此对参考参数感到满意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句