1
Cst kodumda -std = gnuc99 ile derlenmiş bazı uyarıları gidermeye çalışıyorum.Farklı bir boyut uyarısının işaretçisine bu döküm nasıl çözülür?
void function.. (char *argument)
{
int hour;
hour = (int) (struct tm *)localtime(¤t_time)->tm_hour;
if(hour < 12)
{
do...something...
}
}
uyarı
Benim burada happning olduğunu varsaydığımız localtime bir işaretçi değildir ve bu int aynı boyutta değilwarning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
hour = (int) (struct tm *)localtime(¤t_time)->tm_hour;
^
?
Operatör Önceliğini. '((cast) işaretçisi) -> alan '' (cast) (pointer-> alan) 'ile aynı değildir. Ayrıştırıcının kodunuzu nasıl gördüğünü anlamak için parantez ekleyin. – amon
int, 32 bittir. işaretçi bağlı olarak 32 veya 64 bittir. –
Bu Tip Budama mı? (Int) ((struct tm *) localtime (& current_time)) ile denedim ve hiçbir uyarı almadım -> tm_hour; – Fastidious