C/C++一些知识1

  1.  交换两个数的值可以使用异或:^,对于一个数异或另一个数两次就等于自生:a^b^b=a。所以可以:a=a^b; b=a^b; a=a^b; 这样做还有一个好处:可以防止越界。
  2. 判断一段程序是由C编译程序还是由C++编译程序编译的:C++编译时定义了_cplusplus,C编译时定义了_STDC_。
  3. 在main之后执行的代码:有atexit和_onexit两个函数,可以注册一个函数使得它在main结束后运行,示例代码:#include <stdlib.h> #include <stdio.h> int fn1(void), fn2(void), fn3(void), fn4 (void); void main( void ) { _onexit( fn1 ); _onexit( fn2 ); _onexit( fn3 ); _onexit( fn4 ); printf( "This is executed first./n" ); } int fn1() { printf( "next./n" ); return 0; } int fn2() { printf( "executed " ); return 0; } int fn3() { printf( "is " ); return 0; } int fn4() { printf( "This " ); return 0; } 输出的时候是:  This   is   executed   first.  
      This   is   executed   next.  
  4. C中的const限定符:它与C++有比较大的不同,它只是说明“一个不能被改变的普通变量”,它总是占用内存,而且它的名字是全局符。C编译器无法把const看成是编译期间的常量。例如:const buffsize=100; char buff[buffsize]; 这时会报错的,因为C编译器无法知晓buffsize的值。

暂时就这样

你可能感兴趣的:(c,编译器)