易截截图软件、单文件、免安装、纯绿色、仅160KB

GCC G++ C C++的区别

gcc 是c的编译器,g++是c++的编译器。cc一般是一个符号连接,指向gcc。 
CC一般是makefile里面的一个名字,具体是什么根据实际情况决定。 
gcc和g++都是GNU(组织)的一个编译器。 
误区一:gcc只能编译c代码,g++只能编译c++代码 
两者都可以,但是请注意: 
1,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。 
2,编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。 
误区二:gcc不会定义__cplusplus宏,而g++会 
实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。 
误区三:编译只能用gcc,链接只能用g++ 
严格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。 
请问CC cc gcc g++本质区别在什么地方? 
传统上, UNIX OS 会配带 C compiler by default. 一般用符号名 cc. 而C++ compiler 需要另外买. 
常见的有: 
Linux: gcc/g++ 
Solaris: cc/CC 
HP-UX: aCC 
AIX: xlc/xlC 
SCO: ?/? 
几乎所有的情况, C/C++ compiler 都只是front end driver. 后面的编译器是一样的. 比如gcc, g++ 提供不同的选项给编译器以及link editor. 这些包括用户选项, 缺省选项, 对应的缺省系统库. 每个compiler有一个configuratoin file来指定这些缺省选项. 使用 verbose mode (-v) 可以看到这些内容. 
C++ 程序因为语法(namespace, class, overload...), 需要mangle 所有的symbol name. 与C程序link的时候需要用extern "C". 
C++的编译器肯定可以编译C的的代码,注意除了C++对C的语法扩充之外,编译和链接C和C++的标准库通常也不一样呢。我用gcc而非g++也编译了C++的程序就证明了这一点。


相关文档:

转载:Hadoop 应该用C++实现,而不是Java

http://www.trendcaller.com/2009/05/hadoop-should-target-cllvm-not-java.html
Sunday, May 10, 2009
Hadoop should target C++/LLVM, not Java (because of watts)
< type="text/javascript">
digg_url="http://www.trendcaller.com/2009/05/hadoop-should-target-cllvm-not-java.html";
Over the years, ......

其实回调函数并不神秘 C/C++中回调函数初探

简介
  对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。
  什么是回调函数?
  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数 ......

使用 gperf 实现高效的 C/C++ 命令行处理


使用 gperf 实现高效的 C/C++ 命令行处理
GNU 完美(gperf)散列函数生成器简化复杂的输入字符串
文档选项
级别: 中级
Arpan Sen
(arpan@syncad.com
), 技术主管, Synapti Computer Aided Design Pvt Ltd
2007 年 9 月 10 日
GNU 的 gperf 工具是一种 “完美的” 散列函数,可以为用户提供的一组特 ......

C 中scanf ( ) 函数用法 心得

我觉得,在输入输出函数中,scanf()函数,应该是最麻烦的,有时它给我们的结果很可笑,但是一定是一原因的....
首先声明一下,这篇日志不是介绍scanf()中各种格式符用法的文章(没有这个必要,但是大家一定要会用).
我尝试了很多种输入,包括一些错误的练习,曾经对scanf()由迷茫转向清醒,又由清醒再次转向迷茫......不知道何时是个 ......

C的enum struct 以及 Java的enum

 在c中enum的使用和struct很像
enum name{
a,b,c
};

 
struct name{
int a;
int b;
char c;
};

 
or
 
typedef struct{
int a;
int b;
char c;
}Name;

使用的时候都要先声明变量
 
enum name n1,n2,n3;
n1=a;
n2=b;
n3=enum name(3-1);
struct name sn1,sn2;
s ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号