- 主题:C语言是怎么处理反射需求的?
这个已经有了解决方案,先mark一下。
--
FROM 221.221.52.*
编码的时候不知道调哪个
【 在 wjhtingerx 的大作中提到: 】
:
: 一直不太理解反射的意义,既然要用到别的库的方法,为啥不正经大大方方的调用呢,要弄个反射的好处是啥?
:
: 【 在 dylen 的大作中提到: 】
: : rt
#发自zSMTH@OnePlus3T
--
FROM 39.144.55.*
反射为啥就知道了?
【 在 e729 的大作中提到: 】
: 编码的时候不知道调哪个
:
: #发自zSMTH@OnePlus3T
--
FROM 222.131.247.*
不难吧。
维护一个符号表就可以了。
.COM 这些不都是 C 接口。
【 在 dylen (大海之子) 的大作中提到: 】
: rt
: 这个版应该有人知道吧?
: 谢谢啦
--
FROM 27.38.197.*
反射在JAVA里通常用来看class的定义,比如成员变量的名字和类型,
于是到了c里,就想在运行时拿到struct的成员的类型和名字
【 在 graceman 的大作中提到: 】
: 直接撸袖子动手干内存,为毛还需要反射?
--
FROM 114.242.248.*
在C语言中,struct是一个面向程序员的概念,在编译好的代码中struct只是一小段连续的内存,访问struct成员只是是用内存地址+成员偏移来完成的,这意味着编译好的代码中完全没有struct的概念,所以在C语言中是无法完成所谓的反射操作的。。。
【 在 littleSram 的大作中提到: 】
: 反射在JAVA里通常用来看class的定义,比如成员变量的名字和类型,
: 于是到了c里,就想在运行时拿到struct的成员的类型和名字
--
FROM 113.225.210.*
这么说也对。
但这并不是说反射就绝对不可行。
其它语言的许多概念在 C 里面都是可以模拟出来的。
还是看需求,看有没有那个必要。
不同语言解决问题的模式不一样,
反射是手段,不是目的。
如果存在什么非得反射才能解决的问题,
那么可以让楼主拿出来讨论一下,
相信 C 语言也可以找到办法的,
并不是说没有 Java 的反射了,就解决不了这类问题了。
【 在 siegfried415 (更号2) 的大作中提到: 】
: 在C语言中,struct是一个面向程序员的概念,在编译好的代码中struct只是一小段连续的内存,访问struct成员只是是用内存地址+成员偏移来完成的,这意味着编译好的代码中完全没有struct的概念,所以在C语言中是无法完成所谓的反射操作的。。。
--
FROM 163.125.197.*
C语言作为一门严格的编译语言,其核心的逻辑是结构体的长度必须在编译期得到确定,所以根本不存在在动态语言的那种在运行期询问某个语言实体的类型那样的需求。。。
【 在 flw 的大作中提到: 】
: 这么说也对。
: 但这并不是说反射就绝对不可行。
: 其它语言的许多概念在 C 里面都是可以模拟出来的。
: ...................
--
修改:siegfried415 FROM 113.225.210.*
FROM 113.225.210.*
这就是没有困难制造困难也要克服
【 在 dylen 的大作中提到: 】
: rt
: 这个版应该有人知道吧?
: 谢谢啦
: --
:
发自「今日水木 on iPhone 7 Plus」
--
FROM 223.104.44.*
我明白,c不存在这玩意,搞JAVA经常写注解,所以必须要这个
【 在 siegfried415 的大作中提到: 】
: 在C语言中,struct是一个面向程序员的概念,在编译好的代码中struct只是一小段连续的内存,访问struct成员只是是用内存地址+成员偏移来完成的,这意味着编译好的代码中完全没有struct的概念,所以在C语言中是无法完成所谓的反射操作的。。。
:
--
FROM 114.242.248.*