[入门教程] 【菜农助学活动】C语言查缺补漏

[复制链接]
4985|18
 楼主| Cube 发表于 2011-3-29 01:39 | 显示全部楼层 |阅读模式
本帖最后由 Cube 于 2011-3-29 16:41 编辑

【菜农助学活动】新唐M0开发工具介绍

https://bbs.21ic.com/icview-226202-1-1.html


【菜农助学活动】资料汇总与更新
https://bbs.21ic.com/icview-225655-1-1.html


【菜农助学活动】C语言查缺补漏

今天所讲的内容有可能只适应部分基础相对薄弱,或者是从51直接进入新唐M0

学习的朋友。因为无法将C语言所有内容一一讲明,希望各位能根据自己的基础

找一本适合的书再做学习。


A:简单的预处理命令

1.宏定义

                     #define 标识符             宏体
                     #define 宏名(形参表)   宏体

                     利用宏定义的预处理

                     可将程序中标识符或带参宏 用 #define 后的宏体去替换

                     注意:宏体切忌“;”否则宏展开时将作为宏体之字符
                             另外,宏也不能被赋值

                     例:

                      #define     PI                          3.14
                      #define     CIRCLE(R,L,S)        L=2*PI*R;S=PI*R*R

2.宏与函数的区别

        1.调用函数时有堆栈问题,应有现场保护与恢复系统运行时间也较长
           但是不会增加程序的长度

        2.宏展开只是将取代标示用宏名取代,在编译时进行此工作,故不占用
           运行时间,相比函数调用节省了调用的时间,但引用一次将加大一次
           代码长度。

        3.带形参宏中,形参没有类型,故可以任何类型,而函数实参必须与形参
           类型一致

3.万恶的#include

         1.头文件的结构

               (1)头文件注释,文件说明,功能描述,版权声明等
               (2)内部包含指令以 #ifndef XXX或#define 开始
               (3)通过#include指令包含其他头文件
               (4)包括外部变量与全局函数声明
               (5)包括常量与宏定义
               (6)类型的前置声明与定义
               (7)全局函数的原型与内联函数的定义
               (8)内部包含指令以#endif 结束
               (9)版本号
           
         2.头文件嵌套的问题

                容易编译时进入死循环

                故应:1.使用宏去保证文件只被包含一次
                        2.头文件的引用尽可能放进源文件中

         3.#include<XXX>与"XXX"的区别

                 当前性

                 <>中一般为编译器目录下的文件夹
                      一般这类文件不需要修改

                 ""中一般为用户指定目录下的文件
                      这类文件改动次数比较大

         4.一般使用的到的语句结构

                #ifdef
                          XXX
                #else
                          XXX
                #endif

                #ifndef
                #define
                #endif

                #if
                #else
                #endif

                #ifdef TRUE
                #undef TRUE
                #endif


---------------------------------------------------------------------------


B:结构体的声明与使用


C:指针与地址


D:函数与关键字
hotpower 发表于 2011-3-29 02:04 | 显示全部楼层
赠裤子要积分做签名~~~
X-Hawk 发表于 2011-3-29 20:16 | 显示全部楼层
万恶的 BOOL*
plc_avr 发表于 2011-3-30 10:34 | 显示全部楼层
辛苦了,顶!
a305566 发表于 2011-3-31 10:30 | 显示全部楼层
51小刚 发表于 2011-5-29 20:28 | 显示全部楼层
dong_abc 发表于 2011-5-29 22:21 | 显示全部楼层
精通C语言:
char c;
c=getchar();

哈哈,看出错误没?
abin0415 发表于 2011-5-30 11:18 | 显示全部楼层
学习了
uniquehope 发表于 2011-8-5 22:05 | 显示全部楼层
:hug:看过万恶的头文件~~
jstele 发表于 2012-2-22 18:25 | 显示全部楼层
似乎為寫完
王紫豪 发表于 2012-2-22 18:35 | 显示全部楼层
写的不错,加油
[惊涛骇浪] 发表于 2012-3-24 18:45 | 显示全部楼层
顶,写的很好
wz88 发表于 2012-4-13 16:35 | 显示全部楼层
好贴必须顶
chailiyh 发表于 2012-4-22 08:55 | 显示全部楼层
7# dong_abc
受教了,3Q~
http://www.examw.com/biancheng/c/148042/
cav268 发表于 2012-6-11 10:27 | 显示全部楼层
:handshake
zsyf0918 发表于 2013-1-13 16:21 | 显示全部楼层
受教了
cc3000c 发表于 2013-2-9 22:33 | 显示全部楼层
dong_abc 发表于 2011-5-29 22:21
精通C语言:
char c;
c=getchar();

int c;
c=getchar();
与时俱进 发表于 2013-5-26 11:15 | 显示全部楼层
真是补漏。
张静茹 发表于 2013-5-26 11:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:诚学敏思,踏实点滴

0

主题

270

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部