C или C++?

Vladimir
Опубликовано в: 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

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

Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Yandex.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Писали
  • СМИ 2
  • Моё Место
  • 100 Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - IN.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA
  • Slashdot
  • Magnolia
  • Blogmarks
  • Current
  • Meneame
  • Oknotizie
  • Diigo
  • Funp
  • Hugg
  • Dealspl.us
  • N4G
  • Mister Wong
  • Faves
  • Yigg
  • Fresqui
  • Care2
  • Kirtsy
  • Sphinn
  • SaveThis.ru

Связанные записи

19
Апр
2009

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

  1. Nikolay says:

    Опечатался:

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

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

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

    sizeof('c') != 1?

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

    Спасибо!

    • Vladimir says:

      Спасибо, поправил.

      По поводу sizeof: в C 'c' имеет тип int, а в C++ — char.

      Пруфлинк.

      • Nikolay says:

        Вот, теперь все ясно!
        Просто никогда не программил на Си, по-этому и таких тонкостей не знал.

Подписаться на RSS-ленту комментариев к статье «C или C++?» Trackback URL: http://blog.sjinks.org.ua/c-cpp/546-c-or-cpp/trackback/

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

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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

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