- 主题:C语言是怎么处理反射需求的?
不难吧。
维护一个符号表就可以了。
.COM 这些不都是 C 接口。
【 在 dylen (大海之子) 的大作中提到: 】
: rt
: 这个版应该有人知道吧?
: 谢谢啦
--
FROM 27.38.197.*
这么说也对。
但这并不是说反射就绝对不可行。
其它语言的许多概念在 C 里面都是可以模拟出来的。
还是看需求,看有没有那个必要。
不同语言解决问题的模式不一样,
反射是手段,不是目的。
如果存在什么非得反射才能解决的问题,
那么可以让楼主拿出来讨论一下,
相信 C 语言也可以找到办法的,
并不是说没有 Java 的反射了,就解决不了这类问题了。
【 在 siegfried415 (更号2) 的大作中提到: 】
: 在C语言中,struct是一个面向程序员的概念,在编译好的代码中struct只是一小段连续的内存,访问struct成员只是是用内存地址+成员偏移来完成的,这意味着编译好的代码中完全没有struct的概念,所以在C语言中是无法完成所谓的反射操作的。。。
--
FROM 163.125.197.*
这个简单,一个 switch 搞定
【 在 ylh1969 (没谱) 的大作中提到: 】
: 一个网络通信,约定用json格式。但不规定结构的具体内容。
: 因此需要一对程序来进行序列化和反序列化。
: struct_to_json(struct_p,json);
: json_to_struct(json,struct_p);
: 这两个程序不知道传进来的struct是啥。
--
FROM 27.38.197.*
自己做个 map 类型就可以了。
这都是很常见的需求,有很常见的方案。
【 在 ylh1969 (没谱) 的大作中提到: 】
: 看24楼。
: 在JAVA里很容易实现:
: for 所有需要序列化的成员 {
: 取名字,值
: 加入JSON
: …}
: 在C里怎么做?
: 在我们的系统里,C的服务器,JAVA的客户端。这个问题必须解决。
--
FROM 27.38.197.*
办法总比困难多,别气馁,方法多得很。
起码有三四种方法,具体情况具体分析,别人瞎猜也没用。
你看楼主一共也没说几句话,你猜的未必就比我猜的准。
【 在 ylh1969 (没谱) 的大作中提到: 】
: 如果你整个数据结构用map来做,并不能覆盖全部需求。有些第三方软件,人家提供的.h,本身含有许多结构。这些既有结构需要序列化时,没办法改成map。
: 我的方案是:可以给他们写一个说明书,然后纳入通用序列化/反序列化程序。
: 最近做了一个掌纹识别系统,软件是第三方的,相关的数据结构需要在客户机,服务器间传送,就采用如上方法。
--
FROM 27.38.197.*
这有啥困难的,
没写过 db2 的 sqc 和 oracle 的 pc?
【 在 ylh1969 (没谱) 的大作中提到: 】
: 更有甚者,序列化/反序列化的发展------ORM,Object Relational Mapping, 把关系数据库的表,映射成Object,在C里,就是struct。实质上是struct对关系数据库的序列化/反序列化操作,这中间有太多的操作,代码生成太困难了。
--
FROM 27.38.197.*