《嵌入式LINUX与物联网软件开发 C语言内核深度解析》学习0——其他记录

printf加’\n’的好处

linux中命令行默认是行缓冲,当遇到换行符(\n)才会输出,否则就会缓冲起来,程序终止或者缓冲区满了才输出。

不同系统的换行符

windows:\r\n (CRLF)
linux:\n (LF)
iOS:\r (CR)

scanf中的坑

scanf不会接收最后的\n,\n继续留在标准输入中,导致下次scanf的时候拿到的是\n,而不是真正的数据,scanf的很多错误就是这样来的。

使用typedef的意义

1、简化类型,让程序更容易理解和书写
2、创建平台无关类型,便于移植。
    例如程序用到最高精度的浮点类型。平台A最高为float,平台B最高为long double ,就可以这样定义
    #ifdef PLATFORM_A
    typedef float myMax;
    #endif
    #ifdef PLATFORM_B
    typedef long double myMax;
    #endif

强制类型转换会改变原来的变量的值吗?

原来的变量得值不会改变。
float a = 12.34;
int b = (int)a;
上面的强制类型转换,然后赋值,可以分为4步:
step1:构建临时变量x
step2:将a的整数部分赋值给x
step3:将x赋值给b
step4:销毁x
所以不会更改原变量的值。

debug宏的使用方法

#ifdef DEBUG
#define debug(fmt,args...) printf(fmt,##args)
#else
#define debug()
#endif
发布了38 篇原创文章 · 获赞 17 · 访问量 4317

猜你喜欢

转载自blog.csdn.net/qq_14877637/article/details/87025340