第27章 C语言

1. C与C++

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_02

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_03

2. C与C++的兼容性

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_04

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_05

3. C不支持的C++特性

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_06

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_07

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_08

 

4. C中函数与C++的区别:不支持函数重载

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_09

5. 函数参数检查

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_10

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_11

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_12

6. 函数定义

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_13

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_14

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_15

 

7. 在C++中调用C和在C中调用C++

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_16

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_c++_17
读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_18

 

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_19

 

8. 函数指针

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_20

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_21读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_22View Code
/*

//

// This is example code from Chapter 27.2.4 "Pointers to functions" of

// "Programming -- Principles and Practice Using C++" by Bjarne Stroustrup

//

*/



/*----------------------------------------------------------------------------*/



struct Shape1 {

    enum Kind { circle, rectangle } kind;

    /* ... */

};



/*----------------------------------------------------------------------------*/



void draw(struct Shape1* p)

{

    switch (p->kind) {

case circle:

    /* draw as circle */

    break;

case rectangle:

    /* draw as rectangle */

    break;

    }

}



/*----------------------------------------------------------------------------*/



int f(struct Shape1* pp)

{

    draw(pp);

    /* ... */

}



/*----------------------------------------------------------------------------*/



typedef void (*Pfct0)(struct Shape2*); 

typedef void (*Pfct1int)(struct Shape2*,int);



/*----------------------------------------------------------------------------*/



struct Shape2 {

    Pfct0 draw;

    Pfct1int rotate;

    /* ... */

};



/*----------------------------------------------------------------------------*/



void draw1(struct Shape2* p)

{

    (p->draw)(p);

}



/*----------------------------------------------------------------------------*/



void rotate(struct Shape2* p)

{

    (p->rotate)(p,90);

}



/*----------------------------------------------------------------------------*/



int f1(struct Shape * pp)

{

    draw(pp);

    /* ... */

}



/*----------------------------------------------------------------------------*/

9. C/C++结构签名字空间的差别
读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_23

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_24

 

10. C/C++在关键字上的差别

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_25

11. C/C++在变量定义上的区别

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_26

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_27

12. C风格类型转换

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_c++_28

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_29

13. void* 转换

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_30

14. 枚举

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_31

15. 名字空间

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_32

16. 动态内存分配

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_33

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_34

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_35

 

17. C风格字符串

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_36

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_37

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_38

 

18. C风格字符串与const

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_39

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_c++_40

19. 字节操作

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_c++_41

20. 实例:strcpy

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_c++_42

21. 风格问题

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_43

22. 输入输出

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_44

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_45

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_c++_46

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_47

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_48

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_49

23. 文件

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数重载_50

24. 常量与宏

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_51

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_字符串_52

25. 宏

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_53

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_54

26. 类函数的宏

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_55

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_C与C++区别_56

27. 不要使用语法宏

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_57

28. 条件编译

读书笔记之:C++程序设计原理与实践(ch27:C与C++的区别)[+++]_函数定义_58