чем расширение .c отличается от .cpp?
некоторые компиляторы понимают это так: какое расширение - так и компилить... С/С++
В visual C++ и просто в С работают файлы с расширением как .с так и .срр?
Получается, что разница будет только для компилятора? Или не только?
Получается, что разница будет только для компилятора?А для кого ещё может быть разница?
Чем программы, код которых написан в файлах с расширением .с отличаются от программ, код которых написан в в файлах с расширением .срр?разумеется *.c воспринимается компилятором как прога на C
*.cpp воспринимается компилятором как прога на C++
Поскольку большинство C прог одновременно являются корректными прогами на C++, и C-шные заголовочные файлы обычно доступны для использования в C++ (хотя стандартные C-шные заголовки не обязаны быть доступны с теми же именами эти C-шные проги компилируются C++ компилятором.
Большинство C++ прог наоборот не будут компилироваться C компилятором.
бывают проги на с, которые не компилятся при изменении расширения на срр
![](/images/graemlins/smile.gif)
в таких случаях надо самому определиться, чем компилить: gcc или g++
2) Как и везде, суффикс обычно подсказывает, что же в том файле. Проги на си имеют суффикс "c", на с++ — обычно "C", "cpp", "cxx".
![](/images/graemlins/smirk.gif)
бывают проги на с, которые не компилятся при изменении расширения на сррразумеется
именно потому я написал "большинство", а не "все"
Проги на си имеют суффикс "c", на с++ — обычно "C", "cpp", "cxx".
![](/images/graemlins/crazy.gif)
подредактировал бы косяки что ли
очевидно
Проги на си имеют суффикс ".c", на с++ — обычно ".C", ".cpp", ".cxx", ".cc".
---
...Я работаю антинаучным аферистом...
Погодь, если я не ошибаюсь, любая прога на C одновременно является корректной прогой на C++, т.ч. должна компилится при обоих суффиксах.
в общем случае - верно, но есть исключения.
например, такая программа на C должна компилиться, а не C++ - нет (т.к. используется ключевое слово)
void main
{
int class = 1;
std::cout << class << std::endl;
}
В С есть пространства имен?
когда последний раз я этим интересовался - не было
std::cout << class << std::endl;это в С не скомпилируется
угу, тормознул, не хотелось семантику printf-а вспоминать.
> в общем случае - верно, но есть исключения.
есть и другие исключения, в обычном С не так часто требуется явное приведение типов. Например, код
int *a;
a = malloc(1000000*sizeof(int;
корректен в C, но ошибочен в C++, и с расширением cpp компилироваться не будет. И такое встречается во вполне реальных программах.
Недавно с таким сталкивался
Оставить комментарий
nomad
Чем программы, код которых написан в файлах с расширением .с отличаются от программ, код которых написан в в файлах с расширением .срр?