社区
C语言
帖子详情
如何从一系列变量中找出类型相同的变量?
lujun5100
2006-11-13 09:52:17
现在有一组已经定义的变量,要将这组变量中类型相同的找出来。
哪位大大知道怎么做,完全没有想法阿。
另外,我是用C地,最好用C,其他语言也能接受
比如:int a1,a2,a3; float a4,a5,a6; struct star a7,a8; char a9,a10;
...全文
384
12
打赏
收藏
如何从一系列变量中找出类型相同的变量?
现在有一组已经定义的变量,要将这组变量中类型相同的找出来。 哪位大大知道怎么做,完全没有想法阿。 另外,我是用C地,最好用C,其他语言也能接受 比如:int a1,a2,a3; float a4,a5,a6; struct star a7,a8; char a9,a10;
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lujun5100
2006-11-14
打赏
举报
回复
楼上的这个看起来不错
就是俺的C++不怎么样,先知道下吧,说不定哪天用的上
jixingzhong
2006-11-14
打赏
举报
回复
typeid可以用于作用于各种类型名,对象和内置基本数据类型的实例、指针或者引用,当作用于指针和引用将返回它实际指向对象的类型信息。typeid的返回是type_info类型。
type_info类:这个类的确切定义是与编译器实现相关的,下面是《C++ Primer》中给出的定义(参考资料[2]中谈到编译器必须提供的最小信息量):
class type_info {
private:
type_info(const type_info&);
type_info& operator=( const type_info& );
public:
virtual ~type_info();
int operator==( const type_info& ) const;
int operator!=( const type_info& ) const;
const char* name() const;
};
所以,
比较这个 类型 的name 串是否是一致的,
就可以知道类型是否是一样的了 ~~
比如:
enum ClassType{
UObjectClass,
URectViewClass,
UDialogClass,
……
};
class UObject{
virtual char* GetClassName() const {
return "UObject";
};
virtual ClassType TypeOfClass(){
return UObjectClass;
};
};
class UDialog{
virtual char* GetClassName() const {
return "UDialog";
};
virtual ClassType TypeOfClass(){
return UDialogClass;
};
};
示例:
UObject po=new UObject;
UObject pr=new URectView;
UObject pd=new UDialog;
cout << "po is a " << po->GetClassName() << endl;
cout << "pr is a " << pr->GetClassName() << endl;
cout << "pd is a " << pd->GetClassName() << endl;
cout<TypeOfClass()==UObjectClass< cout<TypeOfClass()==URectViewClass< cout<TypeOfClass()==UDialogClass< cout<TypeOfClass()==UObjectClass< cout<TypeOfClass()==UDialogClass<
输出:
po is a UObjectClass
pr is a URectViewClass
pd is a UDialogClass
true
true
true
false
false
jixingzhong
2006-11-14
打赏
举报
回复
楼主你可以使用 C++,
用 typeid.name(a?)
比较这个 name 是否相同,
(它就是变量的类型)
相同的就是名字一样的 ~~
goodluckyxl
2006-11-14
打赏
举报
回复
对源文件进行扫描向楼上说可以但是工作量大
而且你做的好不好才是关键
笨一点在声明的时候做点手脚
对基本类型进行重定义时加进类型表
Aaron_Jerry
2006-11-14
打赏
举报
回复
用编译原理里讲的语法分析肯定是可以做的。建议楼主找个编译原理书看看把。
lujun5100
2006-11-14
打赏
举报
回复
sizeof好像不行,很多类型地字节数都是一样地,看不出来
lujun5100
2006-11-14
打赏
举报
回复
没有人考虑过这个问题吗?
大家都来顶顶吧,没人回答就算散分拉
agaric
2006-11-13
打赏
举报
回复
no way
ruodeer
2006-11-13
打赏
举报
回复
用sizeof??
Writer
2006-11-13
打赏
举报
回复
想不明白为什么你要这样做,这样做有什么好处?
如果你真的要实现这样的功能,我看只能用动态语言(PYTHON,LUA等都行)
mrzho
2006-11-13
打赏
举报
回复
恐怕比较困难,好像无法枚举定义的变量哈.学习中.
Aaron_Jerry
2006-11-13
打赏
举报
回复
这应该涉及到编译原理的语法分析了啊。
可惜我那方面的知识基本上还给老师了。呵呵~~
类型
相同
的两个指针
变量
的运算
关于指针的一些用法
类型
相同
的指针
变量
之间可以进行哪些运算?
对于
类型
相同
的指针
变量
之间不能够进行加法运算,但可以进行减法运算。还可以使用''、'=='这三个运算符进行比较,主要用于判断指针指向数组元素的先后位置。
多个
变量
附
相同
的值_Python
变量
和数据
类型
变量
定义:
变量
来源于数学,是计算机语言
中
能储存计算结果或能表示值抽象概念。(百度百科)
变量
命名规则:开头以字母或者下划线_,剩下的字符数字字母或者下划线Python遵循小驼峰命名法不能使用Python
中
的关键字进行命名声明
变量
Python不需要申明
变量
,
变量
一旦初始化,
类型
和值便确定了。根据值得
类型
来确定
变量
的
类型
。
变量
赋值Python
中
使用等号(=)作为赋值运算符,例如num = 20就是一条...
【
变量
及
变量
类型
】
python语法
中
是没有常量这个概念的,但是在开发程序的过程
中
需要使用到常量,约定俗成 **英文字母全部大写的时候表示为一个常量**
C语言
中
两个
相同
的结构体
类型
的
变量
可以进行赋值操作
1:目的 以前使用结构体,经常是对结构体
中
各个成员进行单独赋值。现在也可以利用
相同
的结构体
类型
的
变量
进行赋值 2:示例 /******************************************************************************* * @file main.c * @verison v1.0.0 * @copyright COPYRIGHT © 2020 CSG * @author
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章