int & b = a; для gcc vs g++

-1 okwoei [2012-08-13 16:03:00]

Я понял, что gcc и g++ обрабатывают по-разному следующие коды:

#include <stdio.h>
int main(void)
{
    int a = 0;
    int& b = a;
    return 0;
}

gcc возвращает "parse error before &", в то время как g++ не возвращается.

Я когда-то встречал интервью, упомянутое C и C++, компиляторы обрабатывают по-разному для int & b.

gcc


1 ответ


2 Michael Madsen [2012-08-13 16:07:00]

Это потому, что & не имеет смысла в объявлении типа C - в C++, это означает, что переменная будет ссылкой, но те не существуют в C.

Другими словами, int& b = a; просто недействителен C-код.