C语言for 嵌入式 Linux
for 嵌入式 Linux 重新学习C语言之路
小狗吃米巴米巴
这个作者很懒,什么都没留下…
展开
-
【重新学习C Day11 for 嵌入式Linux】
Day 11Makefile工程文件的编写还要注意2.typedef和 和define 还是有区别的 区别在于typedef是完全给数据类型换了个名字,功能是完全继承的 而define只是把某个数据类型变成了某几个字母#define IP int *IP p,q int *p,q;typedef int *IP;IP p,q int *p,*q;typedef int FUNC(int);-----> int(int) FUNC;FUNC f; -----> int原创 2022-04-20 07:15:00 · 67 阅读 · 0 评论 -
【重新学习C Day10 for 嵌入式Linux】
Day 101.结构体中地址对齐在一块连续的存储空间中 地址号码要能够整除数据类型所占大小 不然就要往下++1设定0可以整除任何数设下面有连续空间 struct 中存放 int char float 类型的内容 (不一定从0开始 这里只做说明用)0 int开始 // 0%4 可以整除 从0地址开始123 int结束4 char开始 char结束 // 4%1 可以整除 5 // 5%4 不可以整除 所以float 不能从这里开始 +原创 2022-04-18 07:30:00 · 102 阅读 · 0 评论 -
【重新学习C Day9 for 嵌入式Linux】
Day 91.递归的理解要清晰 要有出栈入栈的概念2.函数与数组 只给函数提供一个首地址是不可以的 想完全的在函数中完成对数组的使用 还需要将数组的长度作为参数写入 否则在函数内部将无法判断数组的长度 这是很糟糕的3.函数与几维数组之间的关联 都是差不多的指针函数:返回值是指针 比如 int * find(int)函数指针:一个指针指向了函数 比如 *int (p)(int)#include <stdio.h>#include <stdlib.h>i原创 2022-04-16 07:30:00 · 901 阅读 · 0 评论 -
【重新学习C Day8 for 嵌入式Linux】
Day81.Const可以起到固定成常量的作用指针常量 int *const p 指针的指向不可以被改变 但是指针指向的内容可以被改变 int *const 很明显 保护的是一个p 是一个指针 所以意味着保护的是一个地址常量指针 const int *p or int const *p 指针指向的内容不可以被改变 但是指针的指向可以被改变 p 很明显 不管是const int 还是int const 保护的都是p 是一个指针所指向的内容先看到const 先读常量;先看到* 先读原创 2022-04-15 08:30:00 · 806 阅读 · 0 评论 -
【重新学习C Day7 for 嵌入式Linux】
Day 71.指针在一个平台下所占的内存是确定的大小 这和它的数据类型无关但是不同类型的指针在做运算的时候所代表的意义是不相同的指针一旦定义出来就要给一个明确的指向2.将指针指向空 是为了避免野指针的出现 NULL也是一个确定的指向 当我们还不知道指针需要指向哪里的时候指针可以指向这里3.再次强调一下 int p 并非是 一个int 类型的内容 而是一个 int 类型的内容 至于为什么非要把p写在一块 我觉得吧 确实是挺好看的 反正C语言这个东西本身就是认为规定的 不是嘛4.再次强调一下原创 2022-04-14 08:30:00 · 70 阅读 · 0 评论 -
【重新学习C Day5、6 for 嵌入式Linux】
Day 5.61.二维数组:地址加一其实是换行 加一就是换一行int A[M][N]A只是第一行的起始位置A+1 是第二行的起始位置这一点和一维数组是不一样的 int A[M]A+1只是跳转一个整型当字符数组在定义的时候 ,如果使用字符串定义的方法 ,要注意尾0的存在strlen是以尾0为结束标记的 比如char q[]=”hello\0abc”;printf(“%d\n”,strlen(q));printf(“%d\n”,sizeof(q));前者将打印5 而后者打印1原创 2022-04-13 08:00:00 · 347 阅读 · 0 评论 -
【重新学习C Day4 for 嵌入式Linux】
Day 4修饰符*定义宏的时候涉及到算式 尽量加圆括号()一种测试方法 以及错误#include <stdio.h>#include <stdlib.h>int main(){ printf( “[%s:%d] before while() .” , __FUNCTION__ , __LINE__ ); while(1); printf( “[%s:%d] after while() .” , __FUNCTION__ , __LINE__原创 2022-04-09 21:35:33 · 421 阅读 · 0 评论 -
【重新学习C Day1 for 嵌入式Linux】
重新学习CDay 11.Printf 是有返回值的 如果在进程中没有给 return 或者 exit 那么printf给的返回值是一个有确定含义的返回值2.特别要求精度的比较时,要注意计算机中float并不是数学上的运算 毫无顾忌的使用float会导致错误的发生3.正则表达式中使用自增 i++这样的内容的时候要小心 因为在正则表达式中 ,成立的项也许会自增两次 这和运算优先级有着密切的关系 一般来说 带参宏的可靠性是低于同样功能的函数的 为了保证带参宏的可靠性 解决办法应该是加入代替值 如#in原创 2022-04-06 08:00:00 · 882 阅读 · 1 评论 -
重新学习C Day2 for 嵌入式Linux
Day 2register寄存器类型的一个数据不能打印出地址查看或者使用 static 型的变量会被初始为0或 null static常修饰变量 使变量限制在当前范围内 可以一定程度上避免全局变量的重复定义static 修饰函数时 函数也会被局限在当前的范围里 (当前的.c中)即防止当前函数对外拓展 这就意味着 不同的.c中不能直接互相调用 使用static修饰函数但是可以——通过在 一个.c中用非static修饰的函数作为中转 这个非static修饰的函数在同一个.c中调用static原创 2022-04-07 08:15:00 · 661 阅读 · 0 评论 -
【重新学习C Day3 for 嵌入式Linux】
Day 3逻辑运算符的 “短路” 特性#include < stdio.h>#include <stdlib.h>int main(){ int a=1, b=2, c=3 , d=4; int n=1, m=1; ( m =a>b) && ( n=c>d ); printf( “m=%d \n n=%d\n”, m , n); exit(0);}这里会出现 && 后()中的运算式不会结原创 2022-04-08 22:49:38 · 100 阅读 · 1 评论