
C语言
文章平均质量分 50
helloworld的传说
文以拙成,道以拙见。
展开
-
C之switch小问题
因为C语言会忽视 switch语句与第一个case之间的code,也就是根本不会执行 “num=100;为什么会是100呢?原创 2023-12-16 09:37:16 · 126 阅读 · 0 评论 -
C之不小心就犯错误1-隐式类型转换
根据C语言隐式类型转换的原理,如果是int型与uint型进行比较(其它类型同理),则会将int型数据转换为uint型,则-1变成了 2^32-1 = 4294967295。原创 2023-12-15 18:09:58 · 162 阅读 · 0 评论 -
优雅地打印 HEX 数据
每行每 8 个数据多增加一个空格,数据展示更加直观。原创 2023-12-05 10:04:29 · 427 阅读 · 0 评论 -
宏定义中 ## 和 # 的作用
是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串,也就是在宏参数的开头和末尾添加引号。可以发现,即使给宏参数“传递”的数据中包含引号,使用 # 仍然会在两头添加新的引号,而原来的引号会被转义。## 称为连接符,用来将宏参数或其他的串连接起来。原创 2023-11-30 11:21:31 · 266 阅读 · 0 评论 -
C语言编程规范
在头文件中定义变量,将会由于头文件被其他.c文件包含而导致变量重复定义。如果一个函数只是在同一文件中的其他地方调用,那么就用static声明。使用static确保只是在声明它的文件中是可见的,并且避免了和其他文件或库中的相同标识符发生混淆的可能性。正确示例:建议定义一个STATIC宏,在调试阶段,将STATIC定义为static,版本发布时,改为空,以便于后续的打热补丁等操作。原创 2023-11-14 15:46:22 · 161 阅读 · 0 评论 -
12_const用法
C语言标准库中很多函数的参数都被 const 限制了,但我们在以前的编码过程中并没有注意这个问题,经常将非 const 类型的数据传递给 const 类型的形参,这样做从未引发任何副作用,原因就是上面讲到的,将非 const 类型转换为 const 类型是允许的。const 和指针结合的写法多少有点让初学者摸不着头脑,大家可以这样来记忆:const 离变量名近就是用来修饰指针变量的,离变量名远就是用来修饰指针指向的数据,如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。原创 2023-03-31 09:51:59 · 114 阅读 · 0 评论 -
11、GNU C之宏定义中使用语句表达式
语句表达式的亮点在于定义复杂功能的宏。使用语句表达式来定义宏,不仅可以实现复杂的功能,而且还能避免宏定义带来的歧义和漏洞。例:请定义一个宏,求两个数的最大值。初级程序员写法1#define MAX(x, y) x > y ? x : y明显bug:变量不支持表达式初级程序员写法2#define MAX(x, y) (x) > (y) ? (x) : (y)bug例程:#include <stdio.h>#define MAX(x, y) (x) > (原创 2021-12-02 22:48:58 · 471 阅读 · 0 评论 -
10_GNU C之语句表达式
00、语句表达式GNU C对C语言标准作了扩展,允许在一个表达式里内嵌语句,允许在表达式内部使用局部变量、for循环和goto表达式,我们称之为语句表达式。其格式:({ 表达式1; 表达式2; 表达式3; })int main(void){ int x = 100; int y = 9; int c = ({x;y;}); printf("c = %d\n",c);}第 5 行,这样写合法吗?答案是合法,结果输出 9({ int y = foo();原创 2021-12-02 22:29:30 · 489 阅读 · 0 评论 -
09_GNU C编译器之指定初始化
指定初始化数组成员值常用方法1:int array1[10] ={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,指定初始化a[0]=0,a[1]=1,… ,a[9]=9。常用方法2:int array2[10] = {0};C99高级用法:适合数组比较大,而且数组里非零元素不连续时:用法1—指定元素初始化:int array3[100] = { [10]=80, [50]=100 };用法2—数组某一范围的元素初始化:int array4[100] = { [1原创 2021-12-02 21:55:50 · 193 阅读 · 0 评论 -
08-Linux C的基本数据类型
在 C 语言里,所谓的数据类型就是坑的大小。我们说变量就是在内存里边挖一个坑,然后给这个坑命名。那么数据类型指的就是这个坑的尺寸。不同的平台数据类型所占内存大小可能有一些不同~32位操作系统(单位:字节) char short int float double long long long *(指针) 1原创 2020-06-26 22:43:27 · 210 阅读 · 1 评论 -
07-我终于也会打印helloworld了
#include <stdio.h>main(void){ printf(helloworld\n); return 0}弟弟第一次写出的代码,哈哈~原创 2020-06-25 23:20:14 · 137 阅读 · 0 评论 -
06-编译与解释
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。1.高级语言转成机器语言的方法有两种(1)编译:将源代码一次性转换成目标代码的过程,执行编译过程的程序叫作编译器。一次性翻译,之后不再需要源代码。(2)解释:将源代码逐条换成目标代码同时逐条运行的过程,执行解释过程叫作解释器。每次程序运行时随翻译随运行,类似实时同声传译。根据执行方式不同,编程语言分为两类静态语言:使用编译执行的编程语言脚本语言:使用解释...原创 2020-06-24 20:24:56 · 501 阅读 · 0 评论 -
05-C语言是计算机产业的核心语言
作为编程语言,C语言是程序员与计算机交流的工具,程序员借助C语言“指挥”计算机为用户提供服务。也许是机缘巧合,C语言在1972年出现,而1971年开始,大规模集成电路技术蓬勃发展,计算机产业开始爆发,计算机硬件越来越小型化,越来越便宜,逐渐进入市场,政府机构,乃至普通家庭。到1985年,C语言成为了当时最流行的编程语言,获得了前所未有的成功。操作系统、常用软件、硬件驱动、底层组件、核心算法、数据库、小游戏等都使用C语言进行开发。尤其是操作系统的鼻祖,unix系统使用的C语言的改写,全世界的程序员都...原创 2020-06-14 22:56:53 · 236 阅读 · 0 评论 -
04-C语言的特点和应用
一、C语言的优缺点C语言的特点概述起来其实就是它的优缺点,任何一门语言或者说一项规则都有其优劣性。语言咱先也别说编程语言了,就拿先当今世界最有影响力的语言英语和汉语来说,英语比汉语学起来要简单,汉语更为复杂,什么同音字,多义词等等。。。但不可不说,汉语更能精准简洁的表达某个意境,不然也不会有唐诗宋词了。编程语言也一样,有自己的优劣,它作为一种人与计算机交流的语言来说,使程序员们在使用后能有更直观的感受。优点-三高:1-灵活度高。其一是C语言的运算符和数据类型很丰富,并能自定义一些数据类型,...原创 2020-06-06 14:31:30 · 675 阅读 · 0 评论 -
03-Unix系统和C语言之间的相辅相成
早年人们都用汇编语言写系统,其中的第一个操作系统叫它M系统,是贝尔实验室开发出来的,这个系统当时运作在大型机上,属于专门搞研发的。贝尔实验室里有位大牛,叫肯·汤普森,他一天很无聊啊。某一天,它闲的实在蛋疼,就写了个游戏(翻译过来游戏的名字大概就叫太空旅游),写完了之后就想将它移植到机器上去玩玩,然而扯淡的是机器上的系统跑不动。耶嘿!它马上又精神了,这能难倒他吗?当然不能,他当机立断的就在M系统的基础上,用汇编开发了 Unics系统,打游戏的感觉马上提了一个档次,不过当时这个系统的功能目的还是很单一...原创 2020-06-02 20:27:29 · 783 阅读 · 0 评论 -
02-C语言的发展史
在C语言问世之前,也有很多的编程语言被开发出来,其中最早的一门语言叫 Algol,是 上世纪五六十年代产生的,它是真正的第一门面向问题的语言。但是这门语言离硬件比较远,所以 1963 年剑桥大学在 Algol 的基础上研发出了 CPL。CPL 同 Algol 相比更接近硬件一些,但规模比较大,难以实现。1967 年剑桥大学的马丁·理查兹(Martin Richards)对 CPL 进行了简化,产生了 BCPL。BCPL 中的 B 就是 Basic 的缩写,即“简化的”。1970 年,美国 AT&a...原创 2020-06-01 21:15:59 · 822 阅读 · 0 评论 -
01-C语言之父:丹尼斯·里奇
丹尼斯·里奇,咱又叫他丹尼里奇,美国计算机科学家,对C语言和其他编程语言、Multics和Unix等操作系统的发展做出了巨大贡献。里奇在哈佛大学学习物理学和应用数学毕业,1967年他进入贝尔实验室,是朗讯技术公司系统软件研究部门的领导人。1983年他与肯·汤普逊一起获得了图灵奖。理由是他们“研究发展了通用的操作系统理论,尤其是实现了UNIX操作系统”。1999年两人为发展C语言和Unix操作系统一起获得了美国国家技术奖章。在里奇的成长历程中,有两个人对他的影响最大,一个是他父亲,而另一个是他的挚友,同为U原创 2020-05-31 21:35:28 · 7098 阅读 · 0 评论