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