c/c++

C语言位运算技巧大全

判断int型变量a是奇数还是偶数: a&1 = 0 偶数a&1 = 1 奇数 整数的平均值 对于两个整数x,y,如果用 (x+y)/2 求平均值,会产生溢出,因为 x+y 可能会大于INT_MAX,但是我们知道它们的平均值是肯定不会溢出的,我们用如下算法:

判断int型变量a是奇数还是偶数 判断一个整数是不是2的幂,对于一个数 x >= 0,判断他是不是2的幂

不用temp交换两个整数 [crayon-5866b569388097238925…
阅读全文…

对C语言中的static关键字的深入理解

在阅读一些项目源代码时,我发现很多时候,会把函数和变量声明为static,所以,很好奇为什么要这样做,于是有了下面这篇文章。 基本概念 使用static有三种情况: 函数内部static变量 函数外部static变量 static函数 函数内部的static变量,关键在于生命周期持久,他的值不会随着函数调用的结束而消失,下一次调用时,static变量的值,还保留着上次调用后的内容。 函数外部的static变量,以及static函数,关键在于私有性,它们只属于当前文件,其它文件看不到他们。例如: /* test_static1.c */ #include void foo() { } stati…
阅读全文…