随笔分类 - C/C++
摘要:我们都知道inline是用来声明内联函数的关键字。不过在嵌入式应用中,对于ARM片子,采用GCC编译器,往往有2种声明内联函数关键字:inline和__attribute __((always_inline)),它们有什么区别呢? 对编译器 1. inline : 建议编译器内联,实际是否内联由编译
阅读全文
摘要:对于10进制数d,求d位数。 例: d=1000,位数=4 (分别是1,0,0,0) 1.将d逐项除10(常规方法) #include <stdio.h>int main() { int d = 1000; int counter = 0; while(d) { counter ++; d /= 1
阅读全文
摘要:方法一:位运算 要求ASCII编码的字符ch必须是字母,才能转换。 统一转换成大写:ch & 0b11011111, 简写:ch & 0xDF 统一转换成小写:ch | 0b00100000, 简写:ch | 0x20 A的ascii码是 65 -- 0x41 -- 0b0100 0001 Z对应是
阅读全文
摘要:time(), clock(), gettimeofday()等库函数需要2次查询当前时间点,比较差值,才能判断经过多少时间。也就是说如果需要在1S后触发一个动作,就需要延时等待,而且要一直保持查询,这样就属于阻塞方式了,会浪费大量CPU时间。 对于非阻塞方式,Linux下有alarm和setiti
阅读全文
摘要:1.fgets描述 linux下man fgets查手册知道,fgets()会一直读到文件EOF或者一个新行。换行符("\n")会放入fgets指定缓冲区,且末尾后会加入"\0"; fgets() reads in at most one less than size characters from
阅读全文
摘要:1. 百度搜索MinGW gcc 或直接登录 MinGW gcc官网 http://www.mingw.org/ 2.选择左侧download链接,进入下载页面 3.下载安装包mingw-get-setup.exe 4.启动安装程序mingw-get-setup.exe 设置安装路径 等待下载Min
阅读全文
摘要:ref 1. scanf和gets区别 | 博客园 2. printf和puts区别 | CSDN 1. scanf和gets都能从输入流stdin读取字符串,那么它们有什么区别呢? 不同点: scanf 留回车:开头忽略所有空格,以空格、制表符Tab(\r)、换行符(\n)等结束,结尾自动加上'\
阅读全文
摘要:本文例程下载链接:ListDemo 链表 vs 数组 链表和数组的最大区别在于链表不支持随机访问,不能像数组那样对任意一个(索引)位置的元素进行访问,而需要从头节点开始,一个一个往后访问直到查找到目标位置。 单链表 与顺序表相对,链表是一种链式存储方式。单链表是实现顺序表最简单的一种链表,根据是否包
阅读全文
摘要:参考 1. 关于 -128 ,+128,-0,+0,-1 的反码补码 | 博客园 2. 八位二进制数为什么表示范围(-128~~+127)理解 | 博客园 无符号单字节范围 无符号单字节unsigned char位宽是8bit,范围[0, 1111 1111b],也就是[0, 255]。 有符号单字
阅读全文