compiler construction - Why am I getting an error with gcc but not with g++ in Linux -


the line of code below giving error gcc compiler when file saved check.c. error @ line void swap_address(int& a, int& b) as

error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token

i have used command compile c file: gcc -o check check.c

but same code working fine if use g++ compiler using: g++ -o check check.c

please provide me reason why working g++ , not gcc.

the code:

#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() has reference parameters file has ".c" extension, gcc assuming c file , producing error because reference parameters not part of c.

g++ taking file being c++, happy reference parameters.