Re: [问题] printf type of value

楼主: IhateOGC (我讨厌)   2014-07-28 23:13:13
#include <stdio.h> /*printf*/
typedef struct _OGC{
int list;
char* string;
}OGC;
OGC OGC_TABLE[]={
{1,"int"},
{2,"float"}
{3,"OGC"},
};
char *type(int Q_Q){
return OGC_TABLE[1].char;
}
char *type(float Q_Q){
return OGC_TABLE[2].char;
}
char *type(OGC Q_Q){
return OGC_TABLE[3].char;
}
int main(int argc ,char *[]argv){
int a;
float b;
OGC c;
printf("typeof(a) = %s\n",type(a));
printf("typeof(b) = %s\n",type(b));
printf("typeof(c) = %s\n",type(c));
getchar();
}
※ 引述《qas612820704 (Lego)》之铭言:
: 开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
: GCC
: 请问在c底下我要怎么print出我变量的type
: 例如说
: int a;
: float b;
: char c;
: 我希望能print出
: typeof(a)=int;
: typeof(b)=float;
: typeof(c)=char;
: 可是typeof很像不能这样用?
: 跪求解
作者: purincess (purincess)   2014-07-28 23:19:00
c has no function overloading
作者: purpose (秀才遇到肥宅兵)   2014-07-28 23:56:00
list 也毫无意义
作者: ncoomb (伦)   2014-07-29 00:13:00
请问C语言在什么情况下会不知变量型别呢?好奇你的应用为何!
作者: qas612820704 (Lego)   2014-07-29 01:28:00
其实是因为我用#define DATATYPE XXXX然而要printf时要给format 可是我之后在用这个档案时可能会把 XXXX 改成 int 或是 char之类的所以我不确定我写一些变量他的type是什么只确定他的type示我define的那个DATATYPE所以我想反向知道我的DATATYPE a是什么然后再给一些关于那个type的操作例如printf就我这样讲好像就是给他一些适度的附载平衡就解掉了那如果是这样的话 要怎么 overflow <(_ _)>
作者: azureblaze (AzureBlaze)   2014-07-29 02:07:00
http://ideone.com/nH3bUF inttypes.h是这样搞的
作者: Killercat (杀人猫™)   2014-07-29 04:45:00
C语言不知变量型别的情况多了,看那满天飞的void*还有满地爬的typedef FOO (void*)#define其实仔细想想 后来python跟一些语言干脆拿掉变量全部RTTI 好像除了造成维护困扰以外 也没太大问题啊....反正大家电脑都比以前的超级电脑还快了 :P
作者: kwpn (ITSST)   2014-07-29 13:10:00
Q_Q
作者: uranusjr (←這人是超級笨蛋)   2014-07-29 13:18:00
除了造成维护困扰以外 <-- 不要一句话带过啊喂XD
作者: purincess (purincess)   2014-07-29 20:08:00
同意楼上XDDDDD
作者: APE36 (PT乡民)   2014-07-29 20:23:00
c有类别的定义?? 不是只有c++才有类别吗?? struct ?
作者: Killercat (杀人猫™)   2014-07-29 21:48:00
XDDDDDDD uranusjr这句话莫名喜感啊其实python已经不错了 C型别乱转可是会默默吃下直接毁损资料的,python那些语言其实这方面管控做得不错了....

Links booklink

Contact Us: admin [ a t ] ucptt.com