#define的初步学习和使用中遇到的错误

案例3:通过税前工资计算税后工资

beSal<=5000  不收税

5000<beSal<=8000  收3%税

8000<beSal<=10000 收5税

beSal>=10000           收10%税

beSal=6000

(beSal-5000)*0.03

beSal=9000

(beSal-8000)*0.05 (8000-5000)*0.03

beSal=12000

(beSal-10000)*0.1  (10000-8000)*0.05 (8000-5000)*0.03

 

 多年之后,税率有可能改变,但是逐个改变代码过于麻烦,可以直接用define宏定义

在前面的宏定义中都很顺利,字符都替换成功

但是当尝试宏定义嵌套宏定义时出现了错误

 显示没有找到str(SECOND-FIRST)*RATE1,但是此字符串是确实存在的。

后来尝试了前半段替换 (SECOND-FIRST)——>FEE1,替换成功。

所以感觉问题应该是出在*上面 

那准确的来说SECOND-FIRST是一个str,那么str*ch还是一个str吗?

如果(SECOND-FIRST)*RATE1 更应该算一个算术式而不是字符串,自然就不适用于define的替换规则。

在网上查找错误的过程中,参看了以下链接Linux下的vi编辑命令中查找·替换详解

在目前还没有学习到具体给以上式子定义的前提下,我在代码行中手动更换了FEE1,FEE2,运行结果成功,和define替换前一样。

后续:问了老师确实说是因为*的缘故,这条指令只适用于字符串

自己的理解就是代码中的*是一个运算符号,但是在底行模式里面*是一个字符,两者含义不一样,所以无法找到。 

ps:上一次博客有人回复:CS入门 技能树或许可以帮到你:CS入门技能树

里面是一些linux入门的习题,可以帮助加深印象,很有用。感谢CSDN的网友。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值