Как понимать это конструкцию

Тема в разделе "WASM.BEGINNERS", создана пользователем ajak, 25 апр 2009.

  1. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    ТАк и не могу понять что она значит. Почему if закрывается а атам скобка открытой остаётся. Объясните что это значит и где эту вставку надо использовать?

    #ifdef __cplusplus
    extern "C" {
    #endif /* __cplusplus */

    #define SAST 16
    #define MAST 8

    #ifdef __cplusplus
    }
    #endif /* __cplusplus */
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    это препроцессор, он работает до компилятора и не обращает внимания на код который к нему не отностися, extern "C"{ }
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    ajak
    это отключает С++ манглинг
     
  4. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Для С есть спецальный раздел форума и в нём тема для таких вопросов
    Конструкция означает что помечать константы как extern "C" нужно только при компиляции в режиме С++. При компляции в режиме "чистого" С ,пометки extern "C" и {} не будет.
     
  5. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Y_Mur, помечать… константы?.. В препроцессоре?..
     
  6. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Чёт не пойму?
    А как узнать как я компилю в си стиле илис++?
    а просто жму компилисть и всё!!!
     
  7. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Это в опциях компилятора. По умолчанию, вроде, расширение файла указывает как компилировать: ".CPP" и просто ".C".