C/C++知识点分享(7)
2019-07-03 本文已影响2人
307656af5a04
1.main 主函数执行完毕后,是否可能会再执行一段代码,给出说明?
解析:
可以,可以用_onexit 注册一个函数,它会在main 之后执行
int fn1(void), fn2(void), fn3(void), fn4 (void);
void main( void )
{
String str("zhanglin");
_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; }
2.int id[sizeof(unsigned long)]; 这个对吗?为什么??
解析:对,这个 sizeof是编译时运算符,编译时就确定了可以看成和机器有关的常量。
3.如何打印出当前源文件的文件名以及源文件的当前行号?
解析:
cout << __FILE__ ;
cout<<__LINE__ ;
//__FILE__和__LINE__
// 是系统预定义宏,这种宏并不是在某个文件中定义的
// 而是由编译器定义的