i'm trying troubleshoot warnings in c code compiled -std=gnuc99.
void function.. (char *argument) {   int hour;    hour = (int) (struct tm *)localtime(¤t_time)->tm_hour;    if(hour < 12)   {       do...something...   } }   the warning
 warning: cast pointer integer of different size [-wint-to-pointer-cast]  hour = (int) (struct tm *)localtime(¤t_time)->tm_hour;               ^   what assume happning here localtime not pointer , it's not same size int?
localtime(¤t_time)->tm_hour has type int . cast struct tm *, producing warning.  in general, conversion between pointers , int not meaningful , may cause undefined behaviour.
to avoid error, remove casts:
hour = localtime(¤t_time)->tm_hour;      
Comments
Post a Comment