随笔分类 - C/C++
摘要:do {} while(0)的妙用 转自 "https://blog.csdn.net/qq_16777851/article/details/80867981" 避免空的宏定义在声明时出现警告 避免出现歧义代码 上面宏在使用时,展开后: 有些风格的代码只有一个语句的if会省略{},这样导致了仅 受
        阅读全文
                
摘要:定义 template <class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& val); 作用 在范围[first, last]之间查找第一个等于val
        阅读全文
                
摘要:参考自 "restrict" restrict解释 关键字出现于 标准,wiki上的解释 "restrict from wiki" 。 In the C programming language, as of the C99 standard, restrict is a keyword that 
        阅读全文
                
摘要:做嵌入式C开发的相信都使用过一个关键字volatile,特别是做底层开发的。假设一个GPIO的数据寄存器地址是0x50000004,我们一般会定义一个这样的宏: 在面试的时候也会被问到过volatile关键字起什么作用? 网络上的回答一般是防止被编译器优化,或者还会加一点就是访问被volatile修
        阅读全文
                
摘要:Embedded Programming with the GNU Toolchain Vijay Kumar B. 翻译整理:thammer github: "https://github.com/tanghammer/Embedded Programming with the GNU Toolc
        阅读全文
                
摘要:参数配置 参数配置 gcc -g: 增加调试信息,供valgrind精确定位。 -O0:关闭gcc优化;优化产生的代码可能会造成valgrind误判。 gcc -g: 增加调试信息,供valgrind精确定位。 -O0:关闭gcc优化;优化产生的代码可能会造成valgrind误判。 valgrind
        阅读全文
                
摘要:1 下载CUnit安装包CUnit-2.1-3.tar.bz2保存至/home/用户/ (安装包版本为文章做成时2016-05-25的最新版本) https://sourceforge.NET/projects/cunit 2 解压缩安装包 tar jxvf CUnit-2.1-3.tar.bz2 
        阅读全文
                
摘要:转自http://blog.csdn.net/colin719/article/details/1420583 对于敏捷开发来说,单元测试必不可少,对于Java开发来说,JUnit非常好,对于C++开发,也有CPPUnit可供使用,而对于传统的c语言开发,就没有很好的工具可供使用,可以找到的有这么几
        阅读全文
                
摘要:环境及代码介绍 环境和源码 环境和源码 由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main函数过程。这里不使用编译器自动生成的这部分汇编代码,因为编译器自动生成的代码会涉及环境变量的传递,参数的传递等等一系列问题。以ARM汇编来进行分析。使
        阅读全文
                
摘要:反复在数组名与指针上犯错误,特记录下。 *(p+1)? *(q-1) ? 答案是 3, 5。这里主要涉及的问题就是指针参与运算时,它的地址是怎么增加的,也就是它的地址变化单位。首先,明确一点,指针参与算术运算时,指针地址变化是:offset * 指针指向对象长度。例如,上面的代码中,p, q都是in
        阅读全文
                
摘要:段错误(segment fault ):英文简介 A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of ...
        阅读全文
                
摘要:记录哪个方法更普适,更高效,这些方法不包括使用函数的方法,如果使用函数的话,使用指针的方法更合适。 使用中间变量 形如 int tmp, tmp = a; a=b; b = tmp;1 #define SWAP(a, b) {typeof(a) _t=a; a=b; b=_t;} 通杀,唯...
        阅读全文
                
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号