A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 736010695 中级黑马   /  2014-11-19 21:07  /  998 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 736010695 于 2014-11-19 23:08 编辑

/*
1、预处理指令:1、宏定义  2、条件编译  3、文件包含
2、什么事预处理指令:把我们编写的代码编译成0跟1之前执行的指令
3、所有的预处理指令都是#开头
4、预处理指令的位置可以随便写,但是有作用域(从编写指令那一行开始到文件结尾)
*/

/*
1、宏定义跟函数一样,可以带参数,也可以不带参数
2、宏定义格式:#define + 宏名 + 值
3、宏名一般都是大写(一般变量名都是小写,为了跟变量名区别开来),如果小写的话前面加上k,
4、假如想要提前结束宏定义,只需在想要结束的那行上面写上  #undef + 宏名*/

#define COUNT 5
//在编译之前把代码中所有的COUNT替换成右边的5

#include <stdio.h>
int main()
{
    //双引号里面的COUNT是不会被5替换的
    char *name = "COUNT";

    //知识回顾:数组的元素个数位置也就是[]里是不可以写变量的,只能是常量
    int ages[COUNT] = {1, 2, 3, 4, 5};
    for (int i = 0; i < COUNT; i++) {
        printf("%d\n",ages);
    }

#undef COUNT
    //这句的意思是提前结束宏定义,在编译以前这行下面的COUNT就不会在转成5了

    /*int a = COUNT;这行点COUNT就是一个未定义的变量
    printf("a=%d\n", a);*/

    return 0;
}

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

10 个回复

倒序浏览
第二点宏定义格式是那个吗?#indefine?嘿嘿
回复 使用道具 举报
诺微_ 发表于 2014-11-19 21:30
第二点宏定义格式是那个吗?#indefine?嘿嘿

又出错了,真是:L,一定小心
回复 使用道具 举报
736010695 发表于 2014-11-20 19:46
又出错了,真是,一定小心

嘿嘿    很正常   发布前先运行一遍就好了
回复 使用道具 举报
诺微_ 发表于 2014-11-20 21:07
嘿嘿    很正常   发布前先运行一遍就好了

我写完都会运行的,但是有些东西是在注释里的
回复 使用道具 举报
736010695 发表于 2014-11-20 22:15
我写完都会运行的,但是有些东西是在注释里的

额额    细心点就好了
回复 使用道具 举报
诺微_ 发表于 2014-11-19 21:30
第二点宏定义格式是那个吗?#indefine?嘿嘿

你走到哪个过程了
回复 使用道具 举报
诺微_ 中级黑马 2014-11-21 21:02:16
8#
736010695 发表于 2014-11-21 07:30
你走到哪个过程了

我现在自学中   还没有走流程呢   你呢?
回复 使用道具 举报
qiuguo 中级黑马 2014-11-21 21:08:09
9#
踩一下!
回复 使用道具 举报
学习了,顶一个
回复 使用道具 举报
诺微_ 发表于 2014-11-21 21:02
我现在自学中   还没有走流程呢   你呢?

跟你一样,其实我的目标是第六期
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马