все.На самом деле у меня есть два вопроса, несколько связанных между собой.
Вопрос № 1: Почему gcc позволяет мне объявлять переменные после операторов действия?Я думал, что стандарт C89 не позволяет этого.(Версия GCC: 4.4.3) Это даже происходит, когда я явно использую --std=c89
в строке компиляции.Я знаю, что большинство компиляторов реализуют нестандартные вещи, то есть компиляторы C, допускающие //
комментарии, когда в стандарте это не указано.Я хотел бы изучить только стандарт, так что, если мне когда-либо понадобится использовать просто стандарт, я не буду цепляться за подобные вещи.
Вопрос № 2: Как сделатьВы справляетесь без объектов в C?Я программирую как хобби, и я еще не использовал язык, на котором нет Objects (он же концепции OO?) - я уже знаю немного C ++, и я хотел бы узнать, как использовать C самостоятельно.Предположительно, один из способов состоит в том, чтобы создать структуру POD и сделать функции, аналогичные StructName_constructor()
, StructName_doSomething()
и т. Д., И передать экземпляр структуры каждой функции - это «правильный» способ или я полностью отключен?
РЕДАКТИРОВАТЬ: Из-за небольшого замешательства, я определяю, что мой второй вопрос более четко: я не спрашиваю How do I use Objects in C?
Я спрашиваю How do you manage without objects in C?
, иначе как вы делаете вещи без объектов, где вы бынормально используете объекты?
Заранее большое спасибо.Я никогда не использовал язык без ООП!:)
РЕДАКТИРОВАТЬ: В соответствии с запросом, вот пример проблемы объявления переменной:
/* includes, or whatever */
int main(int argc, char *argv[]) {
int myInt = 5;
printf("myInt is %d\n", myInt);
int test = 4; /* This does not result in a compile error */
printf("Test is %d\n", test);
return 0;
}