免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Patagonia
打印 上一主题 下一主题

[C++] 关于C语言,我喜欢和讨厌的十件事 [复制链接]

论坛徽章:
0
受到警告 11 [报告]
发表于 2013-11-14 10:07 |只看该作者
Patagonia 发表于 2013-11-13 10:18
  
10. 它不支持反射(讨厌)
好吧,可能这只是重申了一下第9点——如果宏系统再稍微强大一点,就不需要反射机制了。说不定我还会滥用它。不过我真正想说的是,用C语言,你不能写出生成代码的代码。
为什么不用C语言本身来写预处理器呢?这会给循环展开,更强大的宏机制,甚至更多IOCCC的怪点子提供无穷无尽的可能性。
.


SB,反射本来就是鸡肋,可有可无,你非得希望C里加些鸡肋的东西,MD

论坛徽章:
0
受到警告 12 [报告]
发表于 2013-11-14 10:17 |只看该作者
本帖最后由 u010402865 于 2013-11-14 10:17 编辑
Patagonia 发表于 2013-11-13 10:18
  
就像Dennis Ritchie说的一样:

“C语言行为古怪,瑕疵遍布...”...


这是 Dennis Ritchie 谦虚的说法,你个SB还当真了

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
13 [报告]
发表于 2013-11-14 11:08 |只看该作者
人家喜欢不喜欢, 人家是因为已经玩转了才说的, 不是因为不会。

论坛徽章:
0
14 [报告]
发表于 2013-11-14 11:21 |只看该作者
linux_c_py_php 发表于 2013-11-14 11:08
人家喜欢不喜欢, 人家是因为已经玩转了才说的, 不是因为不会。

他玩转个毛啊。可以说不喜欢,没人阻止他,但也要说点有水平的,碰到真正的高手,他哪些连屁都不是。

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
15 [报告]
发表于 2013-11-14 11:35 |只看该作者
目测有真正的高手在狂喷楼主啊。

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
16 [报告]
发表于 2013-11-14 20:14 |只看该作者
  1. #define VER_1 "2"
  2. #define VER_2 "0"
  3. #define VER_3 "9"
  4. #define VER_STR VER_1 "." VER_2 VER 3
  5. #define VER_INT ((VER_1[0] - '0') * 100 + (VER_2[0] - '0') * 10 + (VER_3[0] - '0'))
复制代码

论坛徽章:
5
2015年迎新春徽章
日期:2015-03-04 09:58:1115-16赛季CBA联赛之上海
日期:2016-01-18 13:24:3015-16赛季CBA联赛之佛山
日期:2016-01-27 10:13:0515-16赛季CBA联赛之北控
日期:2016-08-04 22:33:2115-16赛季CBA联赛之山西
日期:2016-08-06 15:49:33
17 [报告]
发表于 2013-11-15 10:10 |只看该作者
回复 10# u010402865


    这个帖子里到处是问题啊,宏肯定能实现他说的功能,只是稍微麻烦一点

比如定义一下宏,

  1. #define _TOSTRING(x) #x
  2. #define TOSTRING(x) _TOSTRING(x)

  3. #define VERSION 1.0
  4. #define VERSION_S TOSTRING(VERSION)

复制代码

论坛徽章:
5
2015年迎新春徽章
日期:2015-03-04 09:58:1115-16赛季CBA联赛之上海
日期:2016-01-18 13:24:3015-16赛季CBA联赛之佛山
日期:2016-01-27 10:13:0515-16赛季CBA联赛之北控
日期:2016-08-04 22:33:2115-16赛季CBA联赛之山西
日期:2016-08-06 15:49:33
18 [报告]
发表于 2013-11-15 10:16 |只看该作者
而且static也是相同的,只是所在的位置不同,表示的范围不同罢了
想要强大的宏可以用lisp

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
19 [报告]
发表于 2013-11-15 14:56 |只看该作者
本帖最后由 yulihua49 于 2013-11-15 15:17 编辑
truekbcl 发表于 2013-11-14 09:42
用宏。宏可以解决绝大部分问题。

一般不行。
你看看我的那个题目,如果你对JSON不熟悉,转XML也行,不然可以将struct序列化成任意格式。

你试着弄一个看看。

通用的,将任意结构序列化和反序列化。
用宏能写出来吗?

这是一个普遍的需求,将一个或几个结构从网络传给对方,双方不是一个平台,甚至不是一种语言。
比如,一个C的结构传给JAVA的对象,这就必须将结构序列化。至于序列化使用何格式是可以选择的。有的用户有指定的格式。

为了简化问题:
1.你们可以自定义格式,然后写一个通用的转换宏,函数也行。
2.结构符合第一范式。即,成员都是简单变量。

体会一下,没有反射,这个工作多么困难。

论坛徽章:
0
20 [报告]
发表于 2013-11-15 15:23 |只看该作者
回复 19# yulihua49

反射个毛啊,反射就是tmd可有可无的鸡肋


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP