C语言核心技术

本章节深入探讨C语言中的函数应用,包括文件访问和I/O操作,字符及字符串处理,搜索与内存管理技术,并介绍如何使用Make创建C程序。
摘要由CSDN通过智能技术生成
第1章 C语言基础
1. 概念
 C是很小的内核语言,并包含极少的硬件相关元素,可以说具有相当高的可移植性 。比方说,C语言不提供有关文件操作或动态内存管理等语句。事实上,甚至不直接提供控制台输出和输入语句。C语言的做法是是使用扩充的标准C链接库,为各式各样的编程目的提供各种所需的函数。
 因为C是专门作为“系统编程”而开发的,它目前主要的用途之一就是编写”嵌入式系统程序“,这一点不会让我们感到惊讶。许多开发者把C当作可移植的,结构化的高级程序语言,以编写诸如文字处理器、数据库以及图形应用程序。
第7章 函数
一个源文件就是一个翻译单元。前面说过#include指令只是将文件的内容插入到#include指令的位置,比如这样的代码也是可以的:#include "mydoc.txt"或者#include "mycsource.c"但是这样写出的代码有点怪异,所以这里我们按照一般的概念,编译源文件(.c文件),#include头文件(.h文件)。确切的说,一个翻译单元就是一个源文件和它include的头文件。 一个翻译单元编译成一个目标文件,最后将多个翻译单元连接起来生成一个完整的可执行程序。
1. inline函数
和其他函数不同的是,翻译单元只要用到某个inline函数,就必须重复定义此inline函数,编译器必须准备好此函数,以便插入inline的程序代码,因此,inline函数定义经常被写入在头文件中。
如果翻译单元内的某个函数的所有声明都具有inline修饰符,而没有extern修饰符,那么此函数是inline的。inline定义特别针对翻译单元,它不构成外部的定义,因此别的翻译单元可以包含此函数的外部定义。如果有外部定义附加到inline定义中,那么编译器可以只有选择要使用哪一种定义。
如果使用存储类修饰符extern来声明一个被定义成inline的函数,那么此函数的定义就会是外部的(external)。
然而从别的翻译单元调用函数,将不会被编译成inline。inline函数其实就是一般的函数,只不过在机器码中被调用的方式不同。和一般的函数一样,inline函数具有自己的地址。如果inline函数使用到宏,此处也是展开宏。然而,在没有被声明为static的inline函数,你不应该以静态生存周期的方式来定义可修改的对象。

2. 可选性自变量
这是C语言中对于具有可变参数的函数的支持。
具体要使用这些可变的参数的时候,必须通过一个类型为va_list的对象,它包含了这些参数。该类型定义在stdarg.h中。
可以使用stdarg.h中的4个宏来处理这个指针。
void va_start(va_list argptr,lasparam)
type va_arg(va_list argptr,type)
void va_end(va_list argptr)
void va_copy(va_list dest,va_list src)

第11章 声明
1. 外部链接
具有外部链接的标识符,表示整个程序内部都是相同的函数或对象。编译器会将这种标识符交给连接器(linker),由连接器解析(resolve)这类标识符,并且把其他翻译单元和链接库中的相同标识符链接起来。
在声明函数和对象标识符的时候&#
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值