1
-std = gnuc99でコンパイルしたCコードの警告のトラブルシューティングを試みています。このキャストを異なるサイズの警告のポインタに解決するにはどうすればよいですか?
void function.. (char *argument)
{
int hour;
hour = (int) (struct tm *)localtime(¤t_time)->tm_hour;
if(hour < 12)
{
do...something...
}
}
ここhappningされる私が仮定警告
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
hour = (int) (struct tm *)localtime(¤t_time)->tm_hour;
^
はlocaltimeのがポインタではありません、それはint型と同じサイズではないということですか?
演算子の優先順位。 '((cast)pointer) - > field'は'(cast)(pointer-> field) 'と同じではありません。パーサーがコードをどのように見ているか把握するために、括弧を追加します。 – amon
intは32ビットです。ポインタは、32ビットまたは64ビットである。 –
これはタイププルーニングですか?私は(int)((struct tm *)localtime(&current_time)) - > tm_hour; – Fastidious