您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> c语言 变量名称抓取函数

c语言 变量名称抓取函数

来源:网络整理     时间:2016/7/15 6:53:57     关键词:

关于网友提出的“ c语言 变量名称抓取函数”问题疑问,本网通过在网上对“ c语言 变量名称抓取函数”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: c语言 变量名称抓取函数
描述:

    请问c语言有没有能在结构体之中抓取成员变量名称的函数。比方说,struct info { float I; float U ; char *UID ;
} info1; 然后以结构体作为函数参数,要返回结构体成员变量名称的字符串。


解决方案1:

楼主想要的功能的确是反射功能,java,C#具备这样的功能,原因在于它们的程序是中间的格式,然后通过虚拟机执行,拿java来说,中间文件就是class文件,反射机制就是通过分析class文件得到一个类得成员变量,成员函数的,但是C语言不具备这样的功能,语言特性没有这样的东西

解决方案2:

第一次看到这现象~~~

解决方案3:


#include 
void main()
{
float max (float x, float y);
float a,b;
float c;
scanf("%f,%f", &a, &b);
c = max(a,b);
printf("Max is %f \n", c);
}
float max (float x, float y)
{
float z;
z = x>y?x:y;
return z;
}

这是  有形函数跟 有实函数  看看就好 别太在意 解决方案4:

引用楼主  的回复:
    请问c语言有没有能在结构体之中抓取成员变量名称的函数。比方说,struct info { float I; float U ; char *UID ;
} info1; 然后以结构体作为函数参数,要返回结构体成员变量名称的字符串。

老实说不是很了解是什麽 (我很菜)
我们宣告是
int a;//成员
int b[2][3];//数组
int c()//函数   後面要写函数功能
int c(); //这是功能
{
   return b;
}
字符串 我们用 ""框起来
int a;
a = "你好~"
printf("%d",a); //打印出来
ps:希望能帮上你 解决方案5:

用模板,容易。

解决方案6:

这个真没有

解决方案7:

在.NET中这叫反射

解决方案8:

引用 8 楼  的回复:
我本人的想法也是这样,但是别人的要求是以一个结构体变量为参数的函数,其中结构体的成员在以后可能会有增加,于是要求我这个函数比较灵活,能将传进来的结构体变量的所有变量名称都能转成字符串输出来,也就是要求尽量模块化,只改传进来的结构体,,,

这个提要求的“别人”应该去自己发明一门语言
简单地说,作为静态编译语言,C/C++在编译完成后的可执行程序里不存在任何“变量名”,除非你在定义的时候就给每个变量附加上一个字符串,其内保存你想要保存的变量名
结构体编译完成后,内部的每个变量就只剩下“变量类型”和“地址偏移量”保存在可执行程序内,供人观赏的“变量名”早就完成了它的历史功能,就这么简单 解决方案9:

你都看到了,直接写出来不就得了?
如果是别人给你的结构,让它把名字也给你。


以上介绍了“ c语言 变量名称抓取函数”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2661239.html

相关图片

相关文章