Redian新闻
>
如何clean up C语言中的#if condition statement?
avatar
如何clean up C语言中的#if condition statement?# Programming - 葵花宝典
g*r
1
请问高手,去年暑假用opt做的part time,收到的表格式1099-misc不是w2,收入是在
1099-misc的box7 nonemployee compensation. 这部分收入应该填在1040表格哪里呢?
是算在box7,wages里面还是box21, other income?如果是box21,是不是就算self
employment,还要填其他的表格?
avatar
f*a
2
想创就创 原创音乐大赛---当当当,正式开赛啦
未名空间天籁之音版
首届“想创就创”原创音乐大赛
【摘要】
即日起至10月30日收作品
以前作品可以参加
请重新发贴并注明参赛字样
请尽量使用spymac等国内可以访问的网站连接
【大赛宗旨】
秋天是收获的季节,秋天是硕果累累的日子!2009快乐女生告诉我们人人不仅仅能唱歌
,更能进行歌曲创作来表达心声!!
受此启发,咱们Music板上和其他音乐文学相关版面的很多朋友们已经开始行动起来,
投入到写歌谱曲的行列。为了鼓励大家的创作激情,本版特意举行此次“想创就创”原
创音乐大赛!
【大赛规则】
1、作品类型:本次原创音乐大赛鼓励多种类型的原创音乐作品参加。参赛作品不仅限
于歌曲类作品,器乐类作品同样欢迎。为了鼓励大家走上创作之路,除了100%原创类作
品,有原创性的改编作品也可以踊跃参加。所有作品均需详细注明原创作品的类型。
☆☆MTV的制作,语言类节目不包含在此次比赛中。
作品类型如下(同一作品可以重复参加):
作词类
作曲类
演唱类
演奏类
配器类
改编声乐类
改编器乐类
2、选手要求:所有热爱音乐的国内和海外的未名空间网友均可参加。一
avatar
w*y
3
在iphone和itouch之间徘徊.大牛们请给点儿指点.
avatar
h*n
4
最近有个任务,要retire 几百个 switches,
比如说 switches A, B, C, D, A要retire成TRUE, B要retire成FALSE, C,D 不动
那么
#if A||C
blabla
#endif
就简化成 blabla
#if B||C
blabla
#endif
简化成
#if C
blabla
#endif
#if C==TRUE && B==FALSE || A && D
blabla
#endif
简化成
#if (C==TRUE) || D
blabla
#endif
像这种任务是不是用PERL处理比较好? 但没有比较好的思路。因为这里面还有一个优先
级的问题:== >!= > && > ||
不知道版上的大侠有没有什么好的建议?
avatar
g*r
5
自己顶一下
avatar
z*o
6
spt

【在 f***a 的大作中提到】
: 想创就创 原创音乐大赛---当当当,正式开赛啦
: 未名空间天籁之音版
: 首届“想创就创”原创音乐大赛
: 【摘要】
: 即日起至10月30日收作品
: 以前作品可以参加
: 请重新发贴并注明参赛字样
: 请尽量使用spymac等国内可以访问的网站连接
: 【大赛宗旨】
: 秋天是收获的季节,秋天是硕果累累的日子!2009快乐女生告诉我们人人不仅仅能唱歌

avatar
g*z
7
想换手机手机就买iPhone,只听歌玩游戏就touch。
avatar
b*s
8
逻辑优先级的话用语法树?然后剪枝?
其实可以做个简单的工具,原始的文件不变,每次编译时,根据参数做替换生成供编译
的文件
比如你的原始文件被改名成xxx_template.c,在makefile里还是编译xxx.c
但这个xxx.c是全局替换A B 后生成的临时文件

【在 h*****n 的大作中提到】
: 最近有个任务,要retire 几百个 switches,
: 比如说 switches A, B, C, D, A要retire成TRUE, B要retire成FALSE, C,D 不动
: 那么
: #if A||C
: blabla
: #endif
: 就简化成 blabla
: #if B||C
: blabla
: #endif

avatar
f*a
9
请大家踊跃参加~~~~~~~~~
版务会及时更新的
avatar
h*n
10
多谢。有什么工具可以生成语法树并剪枝吗?没有这方面的经验。
avatar
x*n
11
顶啊顶!
avatar
b*s
12
那个简单方案不行吗?那个方案几个小时就能搞定了
而且万一以后要改c d等都不用写代码

【在 h*****n 的大作中提到】
: 多谢。有什么工具可以生成语法树并剪枝吗?没有这方面的经验。
avatar
f*a
13
谁告诉我怎么置顶但是同时在下面也看得到?
avatar
b*s
14
语法分析树我也不熟,就知道一些理论性的东西
以前做过一个简单的测试脚本解释器用过,很久了

【在 h*****n 的大作中提到】
: 多谢。有什么工具可以生成语法树并剪枝吗?没有这方面的经验。
avatar
f*a
15
精华区放到哪个目录下好?我现在放在玩转音乐下面,但是不会贴。。。
wiki怎么改?
avatar
h*n
16
还是不懂。你说的
"但这个xxx.c是全局替换A B 后生成的临时文件"
是什么意思啊?

【在 b*******s 的大作中提到】
: 那个简单方案不行吗?那个方案几个小时就能搞定了
: 而且万一以后要改c d等都不用写代码

avatar
x*n
17
直接置顶就行了吧?
在web的管理模式里面置顶

【在 f***a 的大作中提到】
: 谁告诉我怎么置顶但是同时在下面也看得到?
avatar
b*s
18
就是用一个脚本工具scan原始文件xxx_template.c
你传输类似 A = TRUE B = FALSE 这样的参数给脚本
脚本读取原始文件,把里面的A 替换成 TRUE
B替换成FALSE
这样类似 if ((C == TRUE) || A && D)
就被替换为 if (( C == TRUE) || TRUE &&D)
然后脚本把替换后的文本存成xxx.c
这样你在pre-compile阶段调用脚本
最后实际编译的是经过替换的结果文件xxx.c
如果有一天你要改变D了,只要改一下脚本的输入参数
一行代码都不用写

【在 h*****n 的大作中提到】
: 还是不懂。你说的
: "但这个xxx.c是全局替换A B 后生成的临时文件"
: 是什么意思啊?

avatar
x*n
19
赫赫,等到大赛结束了再放到精华区和wiki吧

【在 f***a 的大作中提到】
: 精华区放到哪个目录下好?我现在放在玩转音乐下面,但是不会贴。。。
: wiki怎么改?

avatar
b*s
20
因为要替换的行都是switch if while之类可以穷举的条件控制语句
稍微写几个正则就能控制了
而且你还有源文件,还能修改下源文件让正则更简单

【在 h*****n 的大作中提到】
: 还是不懂。你说的
: "但这个xxx.c是全局替换A B 后生成的临时文件"
: 是什么意思啊?

avatar
a*7
21
有没有参赛数量限制啊? :)

【在 f***a 的大作中提到】
: 想创就创 原创音乐大赛---当当当,正式开赛啦
: 未名空间天籁之音版
: 首届“想创就创”原创音乐大赛
: 【摘要】
: 即日起至10月30日收作品
: 以前作品可以参加
: 请重新发贴并注明参赛字样
: 请尽量使用spymac等国内可以访问的网站连接
: 【大赛宗旨】
: 秋天是收获的季节,秋天是硕果累累的日子!2009快乐女生告诉我们人人不仅仅能唱歌

avatar
b*s
22
stackoverflow 有一篇 how to construct an abstract syntax tree

【在 h*****n 的大作中提到】
: 多谢。有什么工具可以生成语法树并剪枝吗?没有这方面的经验。
avatar
x*n
23
赫赫,先暂时不设限制吧,鼓励多发!

【在 a*********7 的大作中提到】
: 有没有参赛数量限制啊? :)
avatar
h*n
24
正则搞不定复杂的case,
要考虑多层嵌套,优先级和括号的情况。

【在 b*******s 的大作中提到】
: 因为要替换的行都是switch if while之类可以穷举的条件控制语句
: 稍微写几个正则就能控制了
: 而且你还有源文件,还能修改下源文件让正则更简单

avatar
f*a
25
没有,多多益善

【在 a*********7 的大作中提到】
: 有没有参赛数量限制啊? :)
avatar
b*s
26
如果只是做替换,不需要搞清这些关系

【在 h*****n 的大作中提到】
: 正则搞不定复杂的case,
: 要考虑多层嵌套,优先级和括号的情况。

avatar
b*u
27
有一点疑问,如果是原创歌曲,那应该参加那个类别的比赛呢?
是不是下面几个类别都需要提交? 专门设置一个类别给 100% 原创会不会更明确?
作词类
作曲类
演唱类
演奏类
配器类
avatar
h*n
28
我是整个code要简化,不是光替换就完了。
假设switches A, B, C, D, A要retire成TRUE, B要retire成FALSE, C,D 不动
那么
#if A||C
blabla
#endif
简化成 blabla
#if B||C
blabla
#endif
简化成
#if C
blabla
#endif
#if C==TRUE && B==FALSE || A && D
blabla
#endif
简化成
#if (C==TRUE) || D
blabla
#endif

【在 b*******s 的大作中提到】
: 就是用一个脚本工具scan原始文件xxx_template.c
: 你传输类似 A = TRUE B = FALSE 这样的参数给脚本
: 脚本读取原始文件,把里面的A 替换成 TRUE
: B替换成FALSE
: 这样类似 if ((C == TRUE) || A && D)
: 就被替换为 if (( C == TRUE) || TRUE &&D)
: 然后脚本把替换后的文本存成xxx.c
: 这样你在pre-compile阶段调用脚本
: 最后实际编译的是经过替换的结果文件xxx.c
: 如果有一天你要改变D了,只要改一下脚本的输入参数

avatar
f*a
29
等我想想哈
先都提交一下哈

【在 b****u 的大作中提到】
: 有一点疑问,如果是原创歌曲,那应该参加那个类别的比赛呢?
: 是不是下面几个类别都需要提交? 专门设置一个类别给 100% 原创会不会更明确?
: 作词类
: 作曲类
: 演唱类
: 演奏类
: 配器类

avatar
b*s
30
能问一句为什么吗?

【在 h*****n 的大作中提到】
: 我是整个code要简化,不是光替换就完了。
: 假设switches A, B, C, D, A要retire成TRUE, B要retire成FALSE, C,D 不动
: 那么
: #if A||C
: blabla
: #endif
: 简化成 blabla
: #if B||C
: blabla
: #endif

avatar
h*n
31
哈,我被assign了一个任务,要clean up几百个这样的switch。
要manual弄太没意思了,想编个tool来弄。

【在 b*******s 的大作中提到】
: 能问一句为什么吗?
avatar
v*u
32
try regular expression.

【在 h*****n 的大作中提到】
: 哈,我被assign了一个任务,要clean up几百个这样的switch。
: 要manual弄太没意思了,想编个tool来弄。

avatar
d*a
33
不用搞得那么复杂,直接调用cpp预处理器就可以了。cpp的具体用法网上找得到。
cpp的输出会有多余的空行,再写一个简单的script去掉。

【在 h*****n 的大作中提到】
: 最近有个任务,要retire 几百个 switches,
: 比如说 switches A, B, C, D, A要retire成TRUE, B要retire成FALSE, C,D 不动
: 那么
: #if A||C
: blabla
: #endif
: 就简化成 blabla
: #if B||C
: blabla
: #endif

avatar
h*n
34
Thanks.
能否给个链接?

【在 d***a 的大作中提到】
: 不用搞得那么复杂,直接调用cpp预处理器就可以了。cpp的具体用法网上找得到。
: cpp的输出会有多余的空行,再写一个简单的script去掉。

avatar
p*o
35
cpp要把所有的宏都展开把,估计不行。

【在 d***a 的大作中提到】
: 不用搞得那么复杂,直接调用cpp预处理器就可以了。cpp的具体用法网上找得到。
: cpp的输出会有多余的空行,再写一个简单的script去掉。

avatar
d*a
37
这倒是...俺考虑不周。

【在 p***o 的大作中提到】
: cpp要把所有的宏都展开把,估计不行。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。