2013-08-01 2 views

ответ

9

XX означает «++» (каждый X является «плюсом», повернутым на 45 °), CXX означает «C++».

Почему "CXX"?

  • «C++» не представляется возможным из-за ограничений макро-идентификаторов (они не могут содержать +);
  • "CPP" (для "C Plus Plus"), как правило, уже используется стоять "CP повторного P rocessor".

Например, в GNU Makefile вы можете определить следующие "переменные":

  • CPPFLAGS : дополнительные флаги для препроцессора C (также используется в C++).
  • CFLAGS   : дополнительные флаги для компилятора C.
  • CXXFLAGS : дополнительные флаги для компилятора C++.

(Обычно вы будете использовать CPPFLAGS и CFLAGS для проекта C и CPPFLAGS и CXXFLAGS для проекта C++.)


Смотрите также Difference between CPPFLAGS and CXXFLAGS in GNU Make и CFLAGS vs CPPFLAGS.

Связанные с этим: Correct C++ file extension (и дубликаты ссылок).

1

Многие файловые системы не позволяют + в именах файлов, поэтому ряд соглашений по именованию появились на C++ исходных файлов на протяжении многих лет, inlcuding .cpp, .cc и .cxx.

У CMake аналогичная проблема, так как его макроязык построен вокруг строк, которые не имеют возможности удерживать специальные символы, такие как +. Это просто ограничение, чтобы заставить синтаксический анализатор CMake становиться слишком сложным. Поэтому, когда они пишут CXX, то, что они на самом деле означают, это всего лишь C++.

Смежные вопросы