关于linux源代码分析,linux源代码是什么语言这个很多人还不知道,今天小深来为大家解答以上的问题,现在让我们一起来看看吧!

linux源代码分析 linux源代码是什么语言linux源代码分析 linux源代码是什么语言


linux源代码分析 linux源代码是什么语言


1、gcc编译这段代码时会出错,因为gcc认为if语句在strcpy()以后就结束了,但是又遇到一个else!如果把haha(a,b)和do_soming_else()对换一下位置,编译没有问题,但是问题更了,因为不管条件是否满足,c+=1都会执行一次。

2、do{ } while() 是先执行一次再判断条件。

3、所有每当引用这好,很经典,是浙大毛德写的,可惜成书于2001年之后一直没有更新。

4、分上下册。

5、个宏时,作就回执行这个do{ }一次,而且只执行一次!这样能很好的避免在宏展开是出错。

6、例如这样一段代码: #define haha(a,b) do{strcpy(a,b); c += 1;} while(0)如果定义成这样 #define haha(a,b) strcpy(a,b); c += 1; 意思一样,但是不行!因为如果在一个if语句中引用这个宏就回出现问题。

7、设:if(a)haha(a,b);经过预处理后,代码成为这样:if(a)strcpy(a,b); c += 1;你可以自己验证,在define定义中加上{ }号还是会有问题。

8、相比之下,在任何情况下do-while语句都不会出现问题。

本文到这结束,希望上面文章对大家有所帮助。