ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

09.11.2007, 12:13
|
|
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме: 3578578
Репутация:
275
|
|
Должен признать, я был не прав. Смотрим: http://ru.wikipedia.org/wiki/Си_(язык_программирования) . Читаем про С99.
отсутствие ограничений на объявление локальных переменных (как и в С++);
несколько новых библиотечных функций, таких как snprintf;
Интерес к поддержке новых особенностей С99 в настоящее время смешан. В то время как GCC и некоторые другие компиляторы в настоящее время поддерживают большую часть новых особенностей С99, компиляторы компаний Borland и Microsoft не делают этого, причём похоже, что две эти компании и не думают их добавлять.
Вообщем вот. Соответственно VS2005, которой я пользуюсь, ничего из этого и не поддерживает. Будем надеяться что в 2008-й внесены изменения :-)
Последний раз редактировалось Forcer; 09.11.2007 в 12:20..
|
|
|

09.11.2007, 12:18
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
#include <stdio.h>
int main(){
printf("%s", buffer);
char* buffer = "Hello, World!\n";
return 0;
}
мда, ну что ещё сказать. но все-таки скажу. речь идет об объявлении переменных
до ПЕРВОГО ЛЮБОГО выполненого оператора, а не объявлении переменных до оператора, их ИСПОЛЬЗУЮЩЕГО. второй случай - вообще некорректен вообще для всех языков.
Это правило хорошего тона - объявлять все переменные вначале программы. Переменная может быть объявлена в любом месте программы до её непосредственного использования.
Это обязательное правило С, во всяком случае его первого стандарта. Только не программы, а ф-ии. А в любом месте она может быть объявлена в С++.
У каждого правила "хорошего тона" есть объяснение, почему оно хорошее, а другое не хорошее. Какое объяснение у этого "правила" ? Я не вижу ничего удобного или эффективного в том, что бы нелогично намешать все обьявления в начале, особенно, если у тебя сотни переменных, а после этого будет стоять сразу же if (!param) return;.
и ещё, советую юзать g++ а не gcc
Forcer, а ты используй MinGW
|
|
|

10.11.2007, 03:33
|
|
Участник форума
Регистрация: 25.01.2006
Сообщений: 158
Провел на форуме: 1000724
Репутация:
361
|
|
Сообщение от KEZ
и ещё, советую юзать g++, а не gcc
Можно узнать - почему именно g++? Чем он лучше gcc?
|
|
|

10.11.2007, 06:08
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Потому что на некоторых системах (наверное старые версии) gcc не понимает .cpp и компилирует их как .c - код.
Поэтому проще сразу g++ использовать, что бы не было проблем.
|
|
|

10.11.2007, 23:12
|
|
Участник форума
Регистрация: 25.01.2006
Сообщений: 158
Провел на форуме: 1000724
Репутация:
361
|
|
gcc по умолчанию не подключает стандартную библиотеку C++.
Во всяком случае старые версии. Так попробуй:
Код:
gcc -o test test.cpp -lstdc++
кстати, у gcc получается меньший размер бинарника.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|