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;
}

[-]
View Code Bash
$ g++ test.c -o test && ./test
C++
$ gcc test.c -o test && ./test
C


Мораль: стандарт языка нужно знать!

Автор: ; опубликовано в: C/C++; метки: C/C++
19
Апр
2009

RSS Комментарии к статье «C или C++?» (3)  »

  1. Опечатался:

    printf("%s\n", buf);

    printf("%s\n", s);

    Ну, и не плохо бы было объяснить, кто не знает (я, например), почему в C

    sizeof('c') != 1?

    Или хотя бы proof-link.

    Спасибо!

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «C или C++?»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा