c语言怎么把宏定义的数据配置到文件中,当需要更改某些数据时,不需要打开程序,在文件中直接修改。

如题所述

无论是头文件还是源文件 不安装编译环境的情况下 用txt 打开基本也没问题
只是有的时候需要改变下打开方式

如果是需要把数据配置到文件中 那么就要用到C语言的文件操作功能。
设定为在程序运行时读入指定位置的文件数据,按一定规则赋值给其他变量就行。
具体操作可以 百度文库 C语言文件操作

但是这种方法不是用在宏定义上,宏只是一种编译前的替换,如果这个程序已经编译好了 就算能通过文本修改也没用 除非 再次编译。
如果非要实现相近的功能 可以不定义宏,而是通过文件操作功能。在用到相关变量的时候通过文件读取获的。
这样就能在不用再次编译的条件下,实现修改。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-03
宏定义不是变量或常量,c语言在编译前要进行预处理,这些处理包括展开宏,其实就是用定义的宏,把代码中使用的宏名全部替换掉,是纯粹的字符串替换,不检查语法,比如:
#define PI 3.1415926
文件中的 “PI” 全部换成 “3.1415926” ,这是为了编辑代码方便而已;编译后就不会有 "PI" ,而是常量 ”3.1415926“ ,
你要做配置文件,就要设定变量,把文件中的数据读入变量,什么变量都可以,
你可以去查一查c语言的宏定义
第2个回答  2013-04-02
1)首先创建一个 头文件
2)然后在头文件中定义这些宏
3) 在 .c 文件中包含就行了

别忘在在头文件中加上 #ifndef xxxx #define xxxx #endif追问

你没理解我的意思,不是 利用头文件,利用头文件还不得有vc++软件才能打开,并不是每台电脑上都装了vc++,譬如例如txt文件把程序的数据写到里边,然后程序运行时能从这个文件中把数据读出。

追答

宏是在编译前就必须定义好的,你除非通过 编译参数传进去 通过/D 定义宏可以
或者写一个编译脚本动态读取文件,并把文件的数据通过参数传给 cl.exe 编译器

第3个回答  2013-04-03
自己定义一个格式

把要修改的数据定义为变量,
程序启动时读取文件的数据,修改相应参数的变量.
相似回答