【发布时间】:2013-08-23 04:52:00
【问题描述】:
即使此文件保存为check.c,下面的代码行也会导致gcc 编译器出错。错误在void swap_address(int& a, int& b) as
错误:在“&”标记之前需要“;”、“,”或“)”
我用这个命令编译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;
}
【问题讨论】:
-
int &是来自 C++ 领域的东西。 C 编译器不处理这种语法。
标签: gcc compiler-construction compiler-errors