C или C++?
Как узнать, компилятором какого языка (C или C++) скомпилирована программа
Задача: программа должна вывести строку «С++», если скомпилирована на С++ и «С», если на С.
[-]
Download test.c
#include <stdio.h>
int main(void)
{
char s[4] = "C++";
s[sizeof('c') - 1 ? 1 : 3] = 0;
printf("%s\n", s);
return 0;
}
int main(void)
{
char s[4] = "C++";
s[sizeof('c') - 1 ? 1 : 3] = 0;
printf("%s\n", s);
return 0;
}
[-]
View Code Bash
$ g++ test.c -o test && ./test
C++
$ gcc test.c -o test && ./test
C
C++
$ gcc test.c -o test && ./test
C
Мораль: стандарт языка нужно знать!
19
Апр
2009
Апр
2009
Комментарии к статье «C или C++?» (3) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «C или C++?»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Опечатался:
printf("%s\n", s);Ну, и не плохо бы было объяснить, кто не знает (я, например), почему в C
sizeof('c') != 1?Или хотя бы proof-link.
Спасибо!
Спасибо, поправил.
По поводу
sizeof: в C'c'имеет типint, а в C++ —char.Пруфлинк.
Вот, теперь все ясно!
Просто никогда не программил на Си, по-этому и таких тонкостей не знал.