(c primer plus第五版)学习笔记
第一章概览
C是一种编译型的语言
编译型:就是把c语言编译成计算机能运行的机器代码
不同的计算机系统有着各自的编译器,来把c编译成对应的机器代码
特性:代码高效,可移植,功能强大和灵活
缺点:代码格式自由(特别是指针的使用)
C语言运行的七个步骤:
1. 定义程序功能
2. 设计程序
3. 编写代码
4. 编译成机器代码
5. 运行
6. 调试
7. 维护修改
第一和第二个步骤对于大的程序作用是很大的,不要忽略这两个步骤,把这两个步骤当成一种习惯,无论程序的大小。
目标代码文件、可执行文件和库
C程序从源代码变成可执行文件(机器代码)需要两个步骤:
1. 编译:编译器将源代码转为中间代码(目标代码)
2. 链接:链接器将中间代码(目标代码)与其他代码(启动代码start-up code和库文件)结合生成可执行文件
相关文档:
第二章 c语言概述
一个简单的实例
#include <stdio.h>
int main(void)
{
int num; /*定义变量num*/
num = 1; /*给变量num赋值*/
printf("I am a simple"); /*使用printf()函数*/
& ......
1.
运行时库的路径
指定方式:
(1)
连接选项
–libpath
(2)
环境变量
ARMLIB
优先级:
libpath
高于
ARMLIB
被指定的路径:
包含
a ......
一、一个经过编译的C/C++的程序占用的内存分成以下几个部分:
1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。
2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 ......
在使用C语言编写大型工程时要用到面向对象语言中的一些特性(内核中某些部分就应用了这些特性)。C语言是基于文件的类,static关键字声明私有数据成员,公有数据成员必须定义到头文件,或由其它文件使用extern关键字声明来使用。但后者引用关系不清晰。头文件就成了公有数据成员声明的地方。
头文件中应该包含以下及方面内 ......
C的函数指针很强大,用好了才是C语言的高手。像Gtk中的回调函数的使用,都体现了函数指针的强大威力。
struct Point{
int x, y;
};
/*Shape*/
/*----------------------------------------------------------------*/
struct Shape {
struct Methods* methods;
};
struct Meth ......