10 C语言关键细节

1 操作系统的概述

操作系统的主要任务是管理所有资源,为产生直接价值的程序(各种应用程序)提供服务,所以操作系统就是管理者和服务者。
操作系统负责管理和资源调配,应用程序负责具体的直接劳动,当应用程序需要使用系统资源(如内存、CPU、硬件操作等)时需要通过API函数向操作系统发出申请,然后操作系统响应,帮助应用程序执行功能。

C库函数

在封装API函数时,尽量使用了同一套接口,所以封装出的库函数相似,但也有差异。所以在一个操作系统上写的应用程序不可能直接在另一个操作系统上面编译运行,于是就有了可移植的问题。

操作系统资源管理

(1)CPU管理
操作系统对CPU的分配。
(2)内存管理
内存是任务的生存空间,内存管理就是操作系统给进程分配内存空间,进程结束后,释放相应的内存。
(3)任务管理
任务就是进程,也就是用户的应用程序,也包括操作系统的各种软件等,操作系统管理这些应用程序如何切换以及如何有效的工作。
(4)文件管理
文件管理是操作系统对文件存储空间进行分配、维护和回收,同时负责文件的索引、共享和文件保护。
(5)I/O设备管理
操作系统与外围的数据交互,管理各种硬件设备,如显示器、硬盘和打印机等。

2 main函数的返回值

普通函数的返回值

如果函数指定返回类型为void,则可以不加return语句;如果函数指定除void之外的其他返回类型,则必须在函数加入return语句。

main函数的返回值

main()函数的两种定义方式:
(1)不带参数
int main(void)
{

return 0;
}
(2)带参数
int main(int argc, char *argv[ ])
{

return 0;
}
或者
int main(int argc, char **argv)
{

return 0;
}
0是main函数的返回值,返回0说明程序正常执行,程序运行结束,返回非0说明程序异常。所以main函数中返回值的意义,不仅仅是一个返回值,还说明结束程序、程序是否运行正常。

3 argc、argv与main函数的传参

主函数main的第一个参数是命令行中的字符串个数,即程序运行的时候给main函数传递的参数个数,取名为argc(argument count参数个数);第二参数是一个指向字符串的指针数组,命令行中的每一个字符都被存储在内存中,并分配一个指针指向它,一般写成argv(argument value)
main函数传参注意以下几点:
(1)main函数传参都是通过字符串传进去的
(2)main函数只有被调用时传参,各个参数(字符串)之间是通过空格来间隔的
(3)在程序内部如果使用argv,一定先检验argc。

4 void类型的本质

描述一段还没有具体使用的内存时需要使用void类型

5 C语言中的NULL

’\0’、‘0’、0和NULL的区别
'\0’是一个转义字符,它对应的ASCII编码值时0,本质就是0;字符串的结尾标志;
'0’是一个数字,对应的ASCII编码值是48,本质是48;一般用来获取0的ASCII码值;
0是一个数字,就是0,本质就是0;一般用来比较一个int类型的数字是否等于0;
NULL是一个表达式,是强制类型转换成void * 类型的0,本质是0;用来比较指针是否是一个空指针。

C语言和汇编语言的区别

汇编语言和及其操作相对应,汇编语言知识CPU机器码的助记符,用汇编语言写程序必须拥有机器的思维;
C语言(高级语言)对低级语言进行了封装(C语言的编译器完成),给程序员提供了一个接近人类思维的语法特征,程序员不用过多考虑及其原理,而可以按照自己的逻辑来编程,如数组、结构体、指针。

程序调试手段

(1)单步调试,利用调试器进行单步调试,最大的好处是直观,能够帮忙找到问题,缺点是限制性大、速度慢。
(2)硬件调试,利用产品的硬件进行调试,适合合适裸机调试。
(3)打印信息,利用printf函数打印调试,比较常用。
(4)log文件,日志文件是系统运行过程中在特定时打印的一些调试信息。log文件记录这些调试信息,供后续追查问题,适用于系统或者大型程序的调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值