| Чистый С под Solaris | |
| От: | Аноним 184 | ||
| Дата: | 28.05.08 17:14 |
Не получается простой printf. В огезге файле после компиляции лежит несметное число кракозябин, в чем причина?
|
| Re: Чистый С под Solaris | |
| От: | Centaur | ||
| Дата: | 28.05.08 17:31 |
| Здравствуйте, Аноним, Вы писали: А>Не получается простой printf. В огезге файле после компиляции лежит несметное число кракозябин, в чем причина?
Ну, как минимум: функция printf должна быть объявлена (#include <stdio.h>); функция main должна возвращать int; в return, соответственно, должен быть код завершения (return 0). |
| Re[2]: Чистый С под Solaris | |
| От: | Аноним 184 | ||
| Дата: | 28.05.08 19:49 |
| Здравствуйте, Centaur, Вы писали: C>Здравствуйте, Аноним, Вы писали: А>>Не получается простой printf. В огезге файле после компиляции лежит несметное число кракозябин, в чем причина? C>
C>Ну, как минимум: функция printf должна быть объявлена (#include <stdio.h>); функция main должна возвращать int; в return, соответственно, должен быть код завершения (return 0). printf объявлена. А main зачем что-то возвращать? Разве void он не на всех континентах void? |
| Re[3]: Чистый С под Solaris | |
| От: | Daevaorn | ||
| Дата: | 28.05.08 20:11 |
| Здравствуйте, Аноним, Вы писали: А>Здравствуйте, Centaur, Вы писали: C>>Здравствуйте, Аноним, Вы писали: А>>>Не получается простой printf. В огезге файле после компиляции лежит несметное число кракозябин, в чем причина? C>>
C>>Ну, как минимум: функция printf должна быть объявлена (#include <stdio.h>); функция main должна возвращать int; в return, соответственно, должен быть код завершения (return 0). А>printf объявлена. А main зачем что-то возвращать? Разве void он не на всех континентах void? За тем, что main `должен` возвращать int. |
| Re[4]: Чистый С под Solaris | |
| От: | Аноним 184 | ||
| Дата: | 28.05.08 20:15 |
| Здравствуйте, Daevaorn, Вы писали: D>За тем, что main `должен` возвращать int. Ясно. Спасибо! |
| Re[4]: Чистый С под Solaris | |
| От: | Erop | ||
| Дата: | 28.05.08 22:46 |
| Здравствуйте, Daevaorn, Вы писали: D>За тем, что main `должен` возвращать int. А разве он в С кому-то что-то должен? IMHO описанный эффект в любом случае с жтим не связан... Кстати, в C вроде бы и функции объявлять не обязательно... Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском |
| Re: Чистый С под Solaris | |
| От: | ДимДимыч | ||
| Дата: | 29.05.08 07:42 |
| Здравствуйте, Аноним, Вы писали: А>Не получается простой printf. В огезге файле после компиляции лежит несметное число кракозябин, в чем причина? В каком файле, в исходном или в выходном? И как компилировали? Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ) |
| Re: Чистый С под Solaris | |
| От: | Аноним 936 | ||
| Дата: | 29.05.08 14:34 |
| Здравствуйте, Аноним, Вы писали: А>Не получается простой printf. В output файле после компиляции лежит несметное число кракозябин, в чем причина? А>
Прошу огромного пардона. Все вижу. Был мой досадный недогляд. Теперь дело хуже то же самое простейшее не компилируется gcc. И говорит мне "/tmp/ccsdmM2b.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status" В cpp int возвращать надо, в отличие от простого C, как было заме4ено выше. Спасибо. |
| Re: Чистый С под Solaris | |
| От: | Аноним 936 | ||
| Дата: | 29.05.08 14:48 |
| Здравствуйте, Аноним, Вы писали: А>Не получается простой printf. В огезге файле после компиляции лежит несметное число кракозябин, в чем причина? А>
g++ работает. |
| Re[2]: Чистый С под Solaris | |
| От: | Sergey | ||
| Дата: | 29.05.08 16:04 |
| Аноним 936 пишет: > В cpp int возвращать надо, в отличие от простого C, как было заме4ено выше. Это не совсем правильно было замечено. В C++ требуется, чтобы функция main имела тип возвращаемого значения int. А вот возвращать что-либо из нее — не обязательно. В этом случае будет считаться, что из нее вернули 0: "If control reaches the end of main without encountering a return statement, the effect is that of executing return 0;" Posted via RSDN NNTP Server 2.1 beta На улицах злая гопота, в офисах злые гомосеки. Как выжить в этом городе простому человеку? |
| Re[2]: Чистый С под Solaris | |
| От: | Uzumaki Naruto | ||
| Дата: | 29.05.08 16:27 |
| Переименуй файл с xxx.cpp в xxx.c или поставь флаг -x<language> у GCC (по умолчанию GCC компилирует файлы с расширением *.cpp C++ компилятором, а не С): gcc -xc xxx.cpp ![]() |
| Re[2]: Чистый С под Solaris | |
| От: | Uzumaki Naruto | ||
| Дата: | 29.05.08 16:30 |
| Это ты скомилировал C++ компилятором, а не С, ответ как скопмилировать C компитяором смотри здесь Автор: Uzumaki Naruto Дата: 29.05.08 ![]() |