[英]53:6: warning: conflicting types for function
#include <stdio.h>
#include <string.h>
struct students{
char name[50];
int age;
int height;
};
int main(int argc, char **argv)
{
struct students manoj;
strcpy(manoj.name, "manojkumar");
manoj.age = 15;
displaymanoj(&manoj); //print testing \n , name , age
return 0;
}
void displaymanoj(struct students *ptr) {
printf("Testing...............DEBUG\n");
printf("%s\t%d\n", ptr->name,ptr->age);
printf("END OF TEST: SUCESS -manoj-");
}
我正在學習C,並且在哪里使用指向結構變量的指針起作用。 運行程序時,我得到正確的輸出。 只是我的Geany IDE發出了一些我想知道原因的消息。
我的編譯器消息如下:
您必須在調用函數之前聲明它們。
所以你的程序應該看起來像
// Includes
// Structure
// Function prototype declaration
// This was what you were missing before
void displaymanoj(struct students *ptr);
int main(int argc, char **argv)
{
...
}
void displaymanoj(struct students *ptr) {
...
}
由於您具有在從main()
調用displaymanoj()
時看不到的定義, displaymanoj()
編譯器隱式聲明一個返回類型為int
顯示類型,該返回類型與實際的類型沖突。 請注意,自C99標准以來, 隱式聲明已刪除,並且不再有效。
要解決這個問題:
1)將函數displaymanoj()
移到main()的定義上方,或者
2)對displaymanoj()
進行前向聲明 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.