расширение исходного файла - PullRequest
2 голосов
/ 15 августа 2011

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

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

Ответы [ 5 ]

4 голосов
/ 15 августа 2011

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

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

3 голосов
/ 15 августа 2011

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

1 голос
/ 15 августа 2011

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

1 голос
/ 15 августа 2011

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

0 голосов
/ 15 августа 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...