2011-08-14 4 views
2

Компилятор проверяет синтаксис исходного кода из текстового файла. Почему необходимо сохранить его с расширением .c или .cpp?расширение исходного файла

Я пробовал это на gcc, но он не скомпилирует файл с расширением, отличным от .c и .cpp !!

+0

Извините ... typo ... отредактировал вопрос –

+2

'gcc -xc hello.txt' – pmg

+0

смотри также: http://stackoverflow.com/questions/172587/what-is-the-difference-between-g и-ССАГПЗ/173007 # 173007 –

ответ

3

Компилятор не угадает язык кода в файле, посмотрев на текст - вы должны сказать ему, что компилировать как. Почти каждый компилятор позволяет передать это как флаг или, он выведет его из расширения файла. Вы можете свободно компилировать файл .cpp как чистый C, передавая соответствующий флаг вашему компилятору, поэтому не нужно его выводить. Тем не менее, это ситуация, когда следующая конвенция помогает вам (меньше флажков) и другим программистам (кто знает язык быстро ls).

4

GCC (укажите его в своих тегах) проверяет расширение файла, если вы не указали язык с опцией -x.

Если расширение не распознано, файл передается непосредственно в компоновщик.

1

Не нужно - просто удобно. Вы можете использовать любое расширение, которое хотите, но использование стандартных расширений облегчает компиляторам, операционной системе и другим программистам знать, что содержит файл.

1

Компилятор обычно использует расширение для определения того, на каком языке должен быть указан файл, поэтому, если он равен .c, он будет обрабатывать файл как содержащий исходный код С. Если это .C (обратите внимание, в верхнем регистре), .cc, .cpp и т. Д., Он будет рассматривать его как C++. В зависимости от компилятора, он может также распознавать другие расширения (например, .pas, .f, .cs и т.д.)

0

Обычно .c файлы содержат C и .cpp файлы содержат C++.

Компиляторы часто используют расширение, чтобы определить, какой язык он может найти в исходном файле. Даже файлы, содержащие чисто C, но сохраняемые с расширением .cpp, обычно интерпретируются как C++. Хотя по большей части C++ является надмножеством C, между этими языками существуют тонкие различия, поэтому код может обрабатываться по-разному.

Вы можете сказать большинству компиляторов обрабатывать любой файл как определенный язык. Как это делается, отличается от компилятора компилятором, например GCC использует опцию -x.

FWIW, я думаю, что GCC также принимает .cc как C++. Но это могло уйти в прошлое.

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