
编程技巧
sqrt_2
创建一个类叫高兴,实例化出一个对象叫开心
展开
-
快速查找一个数字是否出现在40亿个数字中
1.问题描述给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中2.解决方法这个问题在《编程珠玑》里有很好的描述,大家可以参考下面的思路,探讨一下:又因为2^32为40亿多,所以给定一个数可能在,也可能不在其中;这里我们把40亿个数中的每一个用32位的二进制来表示假设这40亿个数开始放在一个文件中。然后将这40亿个数分...原创 2019-10-24 21:47:46 · 742 阅读 · 0 评论 -
C语言编程技巧
首先引入一些大佬的启发性话语,以此作为参考:所有的C程序都做同一件事,观察一个字符,然后啥也不干。 *——Peter Weinberger* 一、编程技巧: 1.为了避免在需...原创 2018-08-07 15:18:00 · 1751 阅读 · 0 评论 -
C语言声明分析器
一、简单的C语言声明优先级规则:A.声明从它的名字开始读取,然后按照优先级顺序依次读取。B.优先级从高到低依次为: b1.声明中被括号括起来的那部分 b2.后缀操作符: 括号()表示这是一个函数,而方括号[]表示这是一个数组。 b3..前缀操作符:*表示“指向…的指针”。C.如果const和volatile关键字的后面紧跟类型说明符(如int),那么它作用于类型说明符。其他情...原创 2018-08-08 17:23:04 · 405 阅读 · 0 评论 -
内存管理
1. 内存分配方式 内存分配方式有三种:从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。从堆上分配,亦称动态内存分配。程序在运行的时候用...原创 2019-08-02 21:18:28 · 143 阅读 · 1 评论 -
通过宏函数计算结构体成员偏移量
编译器在为结构体成员分配内存时,由于存在内存对齐机制,各个成员所占空间可能不是连续的,因而不能简单的通过成员类型所占的字长来推断其它成员或结构体对象的地址。 获得结构体成员偏移量的方法可以参照博客: https://blog.youkuaiyun.com/zhanshen2015/article/details/51500757现在主要以第二种方法(通过宏函数计算结构体成员偏移量)为例,做简单整...原创 2019-07-31 16:53:17 · 1261 阅读 · 1 评论 -
程序的版式
1. 头文件的作用 通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。 头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。2. ...原创 2019-08-01 13:36:52 · 139 阅读 · 1 评论 -
命名规则
1. 共性规则标识符应当直观且可以拼读,可望文知意,不必进行“解码”。标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。标识符的长度应当符合“min-length && max-information”原则。几十年前老ANSI C 规定名字不准超过6个...原创 2019-08-01 14:28:00 · 231 阅读 · 1 评论