Страница 1 из 1

gcc & g++

Добавлено: 03 май 2004, 19:56
R-r
в чем разница между gcc & g++, последний почему-то ругается на char lport[4] = "\x00\xFF\xFF\x8b";

Добавлено: 03 май 2004, 20:09
michael
Ты про нулевой символ в конце строки забыл.

Добавлено: 03 май 2004, 22:37
Llama
R-r, в том, что последний - это компилятор C++ - как следнствие более строгие проверки. И еще было бы неплохо увидеть, как именно ругается.

Добавлено: 03 май 2004, 22:43
exe
Возможно const char объявлять надо. Возможно
unsigned char, возможно const unsigned char.

Надо читать доку по g++ и тогда будет понятно. Компайлеры все такие,
вечно при переносе чего-нибудь да не так будет.

Добавлено: 03 май 2004, 22:48
exe
Блин а тут лажа

char lport[5] нада. \0 должен автоматически добавиться, я прав?

В общем пиши
const char * const lport = "...";

Добавлено: 03 май 2004, 22:50
michael
О чем и речь. C, похоже, просто лишнии символы в массив не добавляет, а в C++ проверка строже. Хотя это еще от версии gcc зависеть должно. Они там все со стандартами мутят...

Добавлено: 03 май 2004, 23:12
exe
C тоже добавляет, но не проверяет. Это легко проверить написав
маленькие проги. Используй sizeof и strlen на другой строке.


char lport[4] = "0123";

fprintf(stdout, "strlen = %d\n", (int)strlen(lport));
fprintf(stdout, "sizeof = %d\n", (int)(sizeof(lport)));

Тока для g++ поменять на 5.