一个比较精辟的问题0.0

yousikyzll 2012-08-30 10:59:14
一个学生管理系统 预先宏定义一个人数 N :#define N 10;
我输入十个人以后,我又想添加一个人;
我在程序中 进行自增操作 N++,请问这个有用吗?
(student是结构体类型) 如果没用的话,那怎么办?整个程序中我都用的student stu[N],student *stu_=stu;
...全文
325 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
天外淡云 2012-09-02
  • 打赏
  • 举报
回复
显然不能修改

可以这么写:
static int iNumPeople = 10;
//......
i++;
i是全局的,i++写在函数里面
程序员牛哥 2012-09-02
  • 打赏
  • 举报
回复
用个配置文件。。呵呵,
秀小川 2012-09-02
  • 打赏
  • 举报
回复
宏定义显然不可以这样用啊!
didijiji 2012-09-02
  • 打赏
  • 举报
回复
百度,谷歌宏定义。
HBack 2012-09-02
  • 打赏
  • 举报
回复
太神奇鸟
hpyovo 2012-09-02
  • 打赏
  • 举报
回复
标题党 鉴定完毕。
SillyBenzhu 2012-09-01
  • 打赏
  • 举报
回复
亲,那是会报错底。你用全局变量不就得了,嘎!
gfzeng 2012-08-31
  • 打赏
  • 举报
回复
这样就变成了10++, 常量++操作没有见过, 编译器应该会报错
enevil 2012-08-31
  • 打赏
  • 举报
回复
楼主标题党。。这个问题 哪里精辟了。
moxigenuanliu 2012-08-31
  • 打赏
  • 举报
回复
#define N 10

仅仅是用 N 替换 10
换句话说,N就是10,是个常量

你可以引用常量头,但不能改变常量
赵4老师 2012-08-31
  • 打赏
  • 举报
回复
宏定义展开在编译期实现
N++在运行时实现
AnYidan 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:
C/C++ code

#define N 11
,这样不就可以了吗?
汗,我的意思是我随时都可能要添加或删除一些信息
[/Quote]

google: malloc, realloc, calloc
z8323664 2012-08-31
  • 打赏
  • 举报
回复
+1就行了 而且更直观把。
wanglu343280746 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
C/C++ code
#define N 11
,这样不就可以了吗?
[/Quote]
++
定义宏的原因之一就是便于修改代码,要懂得利用。
xxb249 2012-08-31
  • 打赏
  • 举报
回复
不可以 因为define 定义的是常量 不能进行++预算
baichi4141 2012-08-31
  • 打赏
  • 举报
回复
别再发明新的预编译功能了新手们
#define就是简单的替换
www_adintr_com 2012-08-31
  • 打赏
  • 举报
回复
显然不行.
宏定义是直接替换, 你的代码等价于 student stu[10];
数量要变化, 你应该使用 malloc

int N = 0;
// 任何改变 N 的操作
student *p = malloc(sizeof(student) * N);
自由建客 2012-08-31
  • 打赏
  • 举报
回复
病态设计
proorck6 2012-08-31
  • 打赏
  • 举报
回复
#define是在编译前执行的,如果需要运行时特性,可以使用变量。
int N=10;
N++;
hong_qi 2012-08-30
  • 打赏
  • 举报
回复
你的情况正适合用STL库。

#include<vector.h>

vector<student> stus;

student t1;
stus.push_back(t1);
加载更多回复(3)

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧