C中怎么获取一个变量的数据类型

C中怎么获取一个变量的数据类型,第1张

说一个方向:使用typeof(),即typeof关键字, 如:typeof(var or express)。typeof() 是GUN C提供的一种特性,可参考C-Extensions,它可以取得变量的类型,或者表达式的类型.方向有了,具体还是要自己深入去研究,如包含什么头文件等。

数据库中某个字段为varchar 型,可以通过结果集中的哪个方法获取

表的定义中包含了字段的数据类型,可以查到。

例如:在SQL Server 2005中检查 USERS表中的UID列的数据类型

select c.[name] as column_name, t.name as [type] from sys.columns as c, sys.types as t where c.system_type_id = t.system_type_id and c.object_id = object_id(N'USERS') and c.[name] = 'UID'

输出结果:

column_nametype

----------------- -----

UID varchar

通过约定参数类型或者约定参数格式,确定传入数据的类型。

1、 大多数情况下,参数类型都是确定的,在函数定义时就可以确定类型。此种情况下,不需要函数本身判断,编译器会做判断或转换。

void func(int n)

声明这样的函数,参数为int型,当调用时如果实参不是int型,C编译器会尝试转换为int型,如果转换失败,则编译报错。 

2、 对于参数个数和类型不确定的情况,也就是不定参数形式,一般增加一个格式字符串,通过格式字符串解析后续有几个参数,每个类型是什么。

典型例子为printf:

int printf(const char * fmt, ...)

在printf中,后续参数类型及个数都是不确定的,printf会根据参数fmt中包含的格式字符串,来确定后续的参数类型。 比如传入fmt为"%s%d%lu",那么printf就会尝试在后续参数中读取三个值,类型分别为char *, int,和unsigned long。

除此外,也可以采用其他方式进行约定。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6746328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存