crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
kwisp
  опции профиля:
сообщение 13.5.2009, 14:42
Сообщение #1


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


соберите и посмотрите что выходит:)
Раскрывающийся текст
#include <stdio.h>

main(int t, int _, char *a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)): 1,t<_ ? main(t+1,_,a):3,main(-94,-27+t,a)&&t==2\
?_<13?main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?
main(_,t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n\
{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!\
/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!\
/n{n#';r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/\
w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c;;{nl'-{}rw]'/+,}##'*}\
#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a?putchar(31[a]):
main(-65,_,a+1):
main((*a=='/')+t,_,a+1):
0<t?main(2,2,"%s")
:*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"
),a+1);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.5.2009, 14:56
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


какой ужас :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 13.5.2009, 15:25
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Прикольненько! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 13.5.2009, 20:10
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Litkevich Yuriy @ 13.5.2009, 15:56) *
какой ужас :blink:

что такое?
очень даже ничего?
кто собирал и запускал делитесь мнениями:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 13.5.2009, 21:48
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


А у меня оно не собирается :(

Раскрывающийся текст
kagami@notebook2:/tmp/test$ gcc test.cpp
test.cpp:3: error: second argument of ‘int main(int, int, char*)’ should be ‘char **’
test.cpp:3: error: third argument of ‘int main(int, int, char*)’ should probably be ‘char **’
test.cpp: In function ‘int main(int, int, char*)’:
test.cpp:6: warning: deprecated conversion from string constant to ‘char*’
test.cpp:12: warning: deprecated conversion from string constant to ‘char*’
test.cpp:16: warning: deprecated conversion from string constant to ‘char*’
test.cpp:19: warning: deprecated conversion from string constant to ‘char*’
kagami@notebook2:/tmp/test$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.2-1.1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-cld --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.2 (Debian 4.3.2-1.1)


Сообщение отредактировал Kagami - 13.5.2009, 21:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 13.5.2009, 21:54
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Kagami,
чем собираете то?
gcc 4.3.2 оч странно 3 3 4 собирает без единой запинки :)

у меня тоже 4,3,2 не собирает хм....

Сообщение отредактировал kwisp - 13.5.2009, 21:59
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 13.5.2009, 21:57
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(kwisp @ 13.5.2009, 22:54) *
Kagami,
чем собираете то?
gcc 4.3.2 оч странно 3 3 4 собирает без единой запинки :)

Странно у меня тоже все собралось без запинок. :blink:

gcc версия 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 13.5.2009, 21:59
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


VS 2003 и 2005 - все в порядке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 13.5.2009, 22:19
Сообщение #9


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(BRE @ 13.5.2009, 22:57) *
Странно у меня тоже все собралось без запинок. :blink:

gcc версия 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC)


а вот это уже интереснее .. я на работе собирал gcc 3.3.4 а дома 4,3,2-ым не могу собрать:)
ошибки те же что и у Kagami
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.5.2009, 23:35
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


выходит код не соответсвует современному стандарту С/С++
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 14.5.2009, 8:00
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(kwisp @ 13.5.2009, 23:19) *
Цитата(BRE @ 13.5.2009, 22:57) *
Странно у меня тоже все собралось без запинок. :blink:

gcc версия 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC)


а вот это уже интереснее .. я на работе собирал gcc 3.3.4 а дома 4,3,2-ым не могу собрать:)
ошибки те же что и у Kagami

А расширение у файла какое?
Должно быть .c
Если .cc или .cpp, то не соберется. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 14.5.2009, 8:15
Сообщение #12


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Litkevich Yuriy @ 14.5.2009, 0:35) *
выходит код не соответсвует современному стандарту С/С++

не соответствует.
BRE скорее всего прав:) надо поставить расширение *.c и всё будет ок:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 14.5.2009, 12:15
Сообщение #13


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Не будет оно ок даже на *.c. Потому что код не соответствует Стандартам языков - ни C, ни C++. Непонятно, чего добивался аффтар этого.... хмм.... кода? (кодом это назвать нельзя, скорее - шифровки.)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.5.2009, 12:44
Сообщение #14


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


если скомпиленой проге (на виндовозе) передать какой-нибудь аргумент, она аварийно завершается :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 14.5.2009, 13:48
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Скомпилировал на Visual Studio 6.0! Прикольный результат! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 14.5.2009, 13:59
Сообщение #16


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Влад,
проверяли или утверждение голословное?
я утверждаю что соберется - потому что проверял.

а как вам запись
putchar(31[a]) ?

оказыватеся
31[a] все равно что a[31].
во как бывает:)

Сообщение отредактировал kwisp - 14.5.2009, 14:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 14.5.2009, 14:34
Сообщение #17


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Я думаю, что любителям языков АПЛ такого рода код придется по вкусу! :)))) Надо будет спросить, кстати! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 14.5.2009, 17:48
Сообщение #18


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Цитата(kwisp @ 14.5.2009, 14:59) *
Влад,
проверяли или утверждение голословное?
я утверждаю что соберется - потому что проверял.

Проверял. Поэтому и утверждаю. Вот набор (доступных мне) компиляторов, которые "не переваривают" это:
Comeau 4.3 (online)
Microsoft Visual C++ 2005
GCC 4.3
GCC 4.4

И только Borland C++ 5.5 "скушал" это безмолвно. Хотя, возможно, я не знаю какого-нибудь его ключика..... им пользуюсь весьма редко.

Что же касается записи putchar(31[a]), то она меня не удивляет нисколько. Привык......
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 14.5.2009, 18:00
Сообщение #19


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Влад @ 14.5.2009, 18:48) *
GCC 4.3
GCC 4.4


????

странно у меня все собирается

Раскрывающийся текст

wisp@alxextender ~/develop/refc $ cat rythm.c
#include <stdio.h>

main(int t, int _, char *a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)): 1,t<_ ? main(t+1,_,a):3,main(-94,-27+t,a)&&t==2\
?_<13?main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?
main(_,t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n\
{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!\
/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!\
/n{n#';r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/\
w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}\
#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a?putchar(31[a]):
main(-65,_,a+1):
main((*a=='/')+t,_,a+1):
0<t?main(2,2,"%s")
:*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"
),a+1);
}
wisp@alxextender ~/develop/refc $ gcc -v
Используются внутренние спецификации.
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.3.2-r3/work/gcc-4.3.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.3.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r3 p1.6, pie-10.1.5'
Модель многопотоковости: posix
gcc версия 4.3.2 (Gentoo 4.3.2-r3 p1.6, pie-10.1.5)
wisp@alxextender ~/develop/refc $ gcc rythm.c
wisp@alxextender ~/develop/refc $

Цитата(Влад @ 14.5.2009, 18:48) *
Привык......


кто еще привык?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 14.5.2009, 18:43
Сообщение #20


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


После смены расширения файла на .c все скомпилировалось без проблем
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 15.5.2009, 9:37
Сообщение #21


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Хм, но ведь волшебные ключики -pedantic и -pedantic-errors ты не указал, не так ли?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 15.5.2009, 10:23
Сообщение #22


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


не указал это верно.

вот сейчас указал и gcc3 и gcc4 все равно без ошибок и предупреждений собрал

Сообщение отредактировал kwisp - 15.5.2009, 10:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 15.5.2009, 15:25
Сообщение #23


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Гм. Любопытно...... Где ж собака то порылась?
Раскрывающийся текст

[vladimir@HOME sources]$ gcc --version
gcc (GCC) 4.3.0 20080428 (ASPLinux 4.3.0-8)
Copyright © 2008 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.
[vladimir@HOME sources]$ gcc -std=c99 -pedantic-errors quine.c -o quine
quine.c:4: ошибка: по умолчанию возвращаемый тип функции - ‘int’
[vladimir@HOME sources]$
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 15.5.2009, 15:35
Сообщение #24


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Влад @ 15.5.2009, 16:25) *
Гм. Любопытно...... Где ж собака то порылась?

Ну, поставь перед первым словом main слово int и пробел. И все будет собираться. :)

Сообщение отредактировал BRE - 15.5.2009, 15:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 15.5.2009, 16:29
Сообщение #25


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Ну, это неспортивно :) Скомпилировать и собрать, изменив исходный код, я могу и так. А вот не изменяя исходный код ни на чуть-чуть?!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 15.5.2009, 16:34
Сообщение #26


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Влад @ 15.5.2009, 17:29) *
Ну, это неспортивно :) Скомпилировать и собрать, изменив исходный код, я могу и так. А вот не изменяя исходный код ни на чуть-чуть?!

Так он и так собирается.
Компилятор предупреждает, что не указан тип возвращаемого значения у функции и он будет рассматривать его как int, кстати по стандарту C это нормально.
Что тебя не устраивает в коде? Программа собирается и главное работает. Нормальный валидный код. Нечитаемо, но этого и добивался автор.

Сообщение отредактировал BRE - 15.5.2009, 16:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.5.2009, 16:48
Сообщение #27


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(BRE @ 15.5.2009, 20:34) *
Что тебя не устраивает в коде?
к стати сказать, а уменя компиллер пишит предупреждения относительно аргументов функции main.
И я никогда не видел, что бы их было три штуки. Это соответствует стандарту?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 15.5.2009, 17:08
Сообщение #28


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Цитата(BRE @ 15.5.2009, 17:34) *
Так он и так собирается.
Компилятор предупреждает, что не указан тип возвращаемого значения у функции и он будет рассматривать его как int, кстати по стандарту C это нормально.
Что тебя не устраивает в коде? Программа собирается и главное работает. Нормальный валидный код. Нечитаемо, но этого и добивался автор.

В том-то и дело, что НЕ собирается, и компилятор не предупреждает, а сообщает об ошибке. Вот это и не устраивает.
Кстати, другие протестированные мною компиляторы, за исключением BCC 5.5, тоже сообщают об ошибках и отказываются собирать. Один только BCC проглотил не поперхнувшись.
Вот, например, что заявляет MSVC++ 2005:
Цитата
.... : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========


Цитата(Litkevich Yuriy @ 15.5.2009, 17:48) *
Это соответствует стандарту?

Нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 15.5.2009, 17:29
Сообщение #29


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 15.5.2009, 17:48) *
к стати сказать, а уменя компиллер пишит предупреждения относительно аргументов функции main.
И я никогда не видел, что бы их было три штуки. Это соответствует стандарту?

По стандарту C очень "свободно" относиться к аргументам функций. Вот пример:

Файл a.c
void func( int a, int b );

int main( int argn, char *argv[] )
{
    func( 100, 20 );
}


Файл b.c
#include <stdio.h>

void func( int a )
{
    printf( "%i\n", a );
}


Компилируем и получаем работающую программу.
Т.е. компилятор обрабатывая исходник a.c сгенерирует код, который положит два числа на стек и вызовет функция func. Что там эта функция будет делать и какие значения брать со стека ему все равно. Как только эта функция отработает, следующий код снимит два числа со стека. Адрес функции func компилятор еще не знает, его настроит линкер при сборке объектников.

main это обычная функция, которая вызывается из специального кода CRT, после подготовки программы к работе. Т.е. операционка передает управление на точку входа кода CRT, он настраивает что нужно (например, подготавливает аргументы командной строки), потом в стек кладется количество аргументов и указатель на массив строк параметров и делается call _main.


Цитата(Влад @ 15.5.2009, 18:08) *
В том-то и дело, что НЕ собирается, и компилятор не предупреждает, а сообщает об ошибке. Вот это и не устраивает.

Когда ты компилятору говоришь трактовать предупреждения как ошибки он это и делает, но это проблемма не языка С, а самого компилятора.
По стандарту С ты можешь не указывать явно тип возвращаемого значения у функции и по стандарту он будет трактоваться как int. Компиляторы предупреждают об этом, именно предупреждают.
Если завтра выйдет компилятор, который будет через каждый час работы выдавать предупреждение "Программист, пойди отдохни, не смотри в монитор", и ты ему скажешь все предупреждения расценивать как ошибки, то это будет проблемма компилятора, а не языка программирования. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 15.5.2009, 19:12
Сообщение #30


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Цитата(Влад @ 15.5.2009, 18:08) *
Вот, например, что заявляет MSVC++ 2005:
Цитата
.... : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========


Английским по белому написано - С++ не поддерживает int по умолчанию.. Но программа-то на С написана. Ты не тем компилятором компилируешь :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 15.5.2009, 20:02
Сообщение #31


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(BRE @ 15.5.2009, 18:29) *
Если завтра выйдет компилятор, который будет через каждый час работы выдавать предупреждение "Программист, пойди отдохни, не смотри в монитор", и ты ему скажешь все предупреждения расценивать как ошибки, то это будет проблемма компилятора, а не языка программирования. :)

Зачёт!
:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 15.5.2009, 21:10
Сообщение #32


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Цитата(Kagami @ 15.5.2009, 20:12) *
Английским по белому написано - С++ не поддерживает int по умолчанию.. Но программа-то на С написана. Ты не тем компилятором компилируешь :)

Хорошо. Возражение принято. Тогда объясни, почему gcc (не g++!) в режиме -std=c99 выдает сообщение об ошибке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 15.5.2009, 21:42
Сообщение #33


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Влад @ 15.5.2009, 18:08) *
Вот, например, что заявляет MSVC++ 2005:
Странно. Я компилировал и 2003 и 2005 студией и все в порядке было!
Правда не сразу. :)

Честно говоря такой ошибки как у тебя не было, как дорвусь до рабочего компа, скажу, какие были и что сделал, чтобы их небыло. Просто на вскидку не помню.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 15.5.2009, 22:05
Сообщение #34


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Litkevich Yuriy @ 15.5.2009, 17:48) *
к стати сказать, а уменя компиллер пишит предупреждения относительно аргументов функции main.
И я никогда не видел, что бы их было три штуки. Это соответствует стандарту?


поискав в инете не сложно обнаружить что main и long long может принимать а вообще надо открыть стандарт и посмотреть.
я вообще тему создавал с умыслом расковырять этот код выудить из него что нить интересное если кому конечно интересно, но что то застряли на сборке......:(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.5.2009, 22:30
Сообщение #35


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kwisp @ 16.5.2009, 2:05) *
но что то застряли на сборке
и не такое бывает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 15.5.2009, 22:34
Сообщение #36


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Цитата
я вообще тему создавал с умыслом расковырять этот код выудить из него что нить интересное если кому конечно интересно


обфусцированный код вполне обычная вещь. что в нем может быть интересного? только пожалуй разработка деобфускатора.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DmP
  опции профиля:
сообщение 16.5.2009, 17:07
Сообщение #37


Студент
*

Группа: Участник
Сообщений: 61
Регистрация: 11.3.2008
Пользователь №: 116

Спасибо сказали: 15 раз(а)




Репутация:   2  


Кому лень собирать, как мне, может сразу посмотреть результат. :) И не поверив мне, посмотреть, что же на самом деле выдается в консоли. :)
Раскрывающийся текст

On the first day of Christmas my true love gave to me
a partridge in a pear tree.

On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.

On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.

On the fourth day of Christmas my true love gave to me
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the fifth day of Christmas my true love gave to me
five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the sixth day of Christmas my true love gave to me
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the seventh day of Christmas my true love gave to me
seven swans a-swimming,
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eighth day of Christmas my true love gave to me
eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the ninth day of Christmas my true love gave to me
nine ldies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ldies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ldies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ldies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four clling birds, three french hens, two turtle doves
and a partridge in a pear tree.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 8.6.2025, 2:17