• 嵌入式软件必学知识总结!


      1.sizeof(char*) 这个语句的意思是得到 char* 类型的字节数, char* 是一个指针类型,占4个字节,所以运行结果应该是4.

      2.strlen和sizeof区别。

      sizeof是算符,strlen是函数。sizeof可以用类型做参数,strlen只能用char*做参数。

      strlen指字符的长度,char a[20]="you are a",strlen(a)=9,sizeof(a)=20;sizeof指文件或者数据占的内存(字节),int a[20],sizeof(a)=80。

      3.整数数组清零:bzero(),memset()。

      4.异步IO和同步IO区别

      如果是同步IO,当一个IO操作执行时,应用程序必须等待,直到此IO执行完,相反,异步IO操作在后台运行,

      IO操作和应用程序可以同时运行,提高系统性能,提高IO流量; 在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行,而异步文件IO中,

      线程发送一个IO请求到内核,然后继续处理其他事情,内核完成IO请求后,将会通知线程IO操作完成了。

      5.char在c语言中占一个字节,共4位,大小为-128-127.故0x80=-128

      int foo(void)

      {

      int i;

      char c=0x80;

      i=c;

      if(i>0)

      return 1;

      return 2;

      }返回值为2;因为i=c=-128;如果c=0x7f,则i=c=127。

      6.位运算比乘除以及取模运算效率要高;

      a=b*2 -> a=b<<1;

      a=b/4 -> a=b>>2;

      a=b%8 -> a=b&7;//仅仅适用于除数为2的次方情况,10%3则不适用

      a=b/8*8+b%4 -> a=((b>>3)<<3)+(b&3)

      a=b*15 -> a=(b<<4)-b

      7.异或运算又称“半加运算”,即满2取0不进位,例:1^1=0,1^0=1,0^1=1;0^0=0;

      0x1001^0x1100=0x1101;

      由上图中加黑式可知,异或运算可用来取反,即无论0或1与1异或均可得到其相反数。

      故:

      如何对一个十六进制数的某一位取反,用C语言写?

      第n位取反同(1 <<n-1) p="" 异或。<="">

      0X2F第三位取反,则0x2F^(1<<2)=0x2B;//注意是第三位而非bit3!

      8.大端小端是两种不同的数据储存格式;

      小端:低位字节数据存储在低地址

      大端:高位字节数据存储在低地址

      例如:int a=0x12345678;(a首地址为0x2000)

      0x2000 0x2001 0x2002 0x2003

      0x12 0x34 0x56 0x78 大端格式

      9.&和&&的区别:

      & 不管前面的条件是否正确,后面都执行

      && 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好。

      &&”是逻辑运算中的“短路”,若"&&"前的条件为false时判断结果为false,不再执行"&&"后的语句块。"&&"前为true则继续进行进行后半部分的判断 。

      如果&&运算符的第一个操作数是false,就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么,其结果都是false。同样,如果第一个操作数是true,||运算符就返回true,无需考虑第二个操作数的值。但&和|却不是这样,它们总是要计算两个操作数。

      ————————————————

      如果没有看明白,可以观看视频进行学习:

      嵌入式开发职业规划

      http://www.makeru.com.cn/live/1392_308.html?s=143160

      嵌入式行业发展跟现状分析

      http://www.makeru.com.cn/live/1392_401.html?s=143160

      完美简历该如何打造

      http://www.makeru.com.cn/live/5562_1947.html?s=143160

      欢迎进入嵌入式大神群进行学习 (858330377)

  • 相关阅读:
    一些常用的代码评审工具
    Atlassian旗下一干team build软件
    Jira功能全介绍
    项目经验分享
    网址、下载地址
    Java 字节码解读
    Gitlab 安装
    博客园设置
    mybatis 遇到空串无法判断
    Shell 脚本入门
  • 原文地址:https://www.cnblogs.com/Echoli-1226/p/13030804.html
Copyright © 2020-2023  润新知