इस कोड को मुझे चेतावनी देता है:scanf() का उपयोग कर time_t चर में डेटा को कैसे पढ़ा जाए?
$ cat test.c
#include<stdio.h>
#include<time.h>
int main() {
time_t t;
scanf("%lld", &t);
printf("%lld\n", t);
return 0;
}
$ gcc test.c -o test
test.c: In function ‘main’:
test.c:7: warning: format ‘%lld’ expects type ‘long long int *’, but argument 2 has type ‘time_t *’
test.c:8: warning: format ‘%lld’ expects type ‘long long int’, but argument 2 has type ‘time_t’
$
चेतावनी से
अलावा, के रूप में उम्मीद कोड काम करता है।
संकलन पर चेतावनियां प्राप्त करने के लिए मुझे क्या करना चाहिए (कृपया कोई संकलक प्रगति चाल नहीं है)?
मैं सुरक्षित होने के लिए सबसे बड़ा संभव आकार का उपयोग करूंगा। और 'strtoull'' scanf' से बेहतर विकल्प होगा। –
@ आर ..: 'strtoll()' के बाद से 'time_t' आम तौर पर हस्ताक्षरित है। –
+1। दरअसल, POSIX एक पूर्णांक या वास्तविक फ़्लोटिंग प्रकार होने के लिए 'time_t' को अनुमति देता है। वास्तव में – dreamlax