“C语言的预处理 不能实现宏定义和条件编译的功能”和“C语言的预处理不能实现宏定义和条件编译的功能”

[复制链接]
查看11 | 回复4 | 2015-5-22 14:05:50 | 显示全部楼层 |阅读模式
这两句话没差别吧!!一字不差啊!!!那这句话到底对是不对啊??还有一句“C语言中预处理程序都以#开头”对不对?

回复

使用道具 举报

千问 | 2015-5-22 14:05:50 | 显示全部楼层
这两句话是一个意思, C语言中的预处理,是可以实现宏定义和条件编译功能的。比如下面的代码定义了一个宏S,它的值是”hello world\n",可以用printf函数直接打印出来。#include #define S "hello world\n"int main(){printf(S); return 0;}C语言中的预处理也可以实现条件编译功能,预处理到现在依然存在的一个重要原因就在于此。比如下面的代码:#include int main(){#ifdef _DEBUGprintf("程序生成的debug版\n");#elseprintf("程序生成的是release版\n");#endifreturn 0;
回复

使用道具 举报

千问 | 2015-5-22 14:05:50 | 显示全部楼层
宏定义和条件编译都是在预处理时候实现的。所有预处理命令均以符号#开头。
回复

使用道具 举报

千问 | 2015-5-22 14:05:50 | 显示全部楼层
是c里面的语句,只不过预编译部分的语句是给预编译写的,编译部分是给编译部分写的。和语言的编译过程有关系,楼主有兴趣可以了解一下。
回复

使用道具 举报

千问 | 2015-5-22 14:05:50 | 显示全部楼层
以用malloc函数,函数调用是可以的。比如你要申请int型的未知个数数组。可以以下程序#include#includemain(){
int *p;
int n;
printf("请输入录入个数N:\n");
scanf("%d",
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行