Страница 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.