thể trùng lặp:
Error: No previous prototype for function. Why am I getting this error?Không có nguyên mẫu trước?
Tôi có một chức năng mà tôi prototyped trong file header, tuy nhiên Xcode vẫn mang lại cho tôi cảnh báo No previous prototype for the function 'printBind'
. Tôi có chức năng setBind
prototyped theo cùng một cách nhưng tôi không nhận được một cảnh báo cho chức năng này trong việc thực hiện của tôi.
CelGL.h
#ifndef Under_Siege_CelGL_h
#define Under_Siege_CelGL_h
void setBind(int input);
void printBind();
#endif
CelGL.c
#include <stdio.h>
#include "CelGL.h"
int bind;
void setBind(int bindin) { // No warning here?
bind = bindin;
}
void printBind() { // Warning here
printf("%i", bind);
}
Mặc dù giờ đây tôi đã hiểu lý do lỗi, nhưng tôi thực sự không hiểu tính hữu ích của tính năng này. Khi nào bạn định nghĩa một hàm với một danh sách tham số không xác định và chính xác điều này sẽ làm gì với C++? Đây có phải là một tính năng hữu ích trong C++ không? – sherrellbc
Bạn không thể xác định nguyên mẫu có danh sách đối số không xác định trong C++. Trong C++, điều đó có nghĩa là "không có đối số", không phải "đối số không xác định". Tính năng này không hữu ích nhiều như là một sự nhượng bộ cần thiết cho thực tế. Khi C được chuẩn hóa, toàn bộ cơ sở mã lớn được viết mà không có nguyên mẫu; họ đã không tồn tại trong C. Ký hiệu ngoặc đơn trống là tất cả đã có trong chuẩn trước C. Để có outlawed nó sẽ giết chết các tiêu chuẩn C non trẻ. Điều đó vẫn đúng với C99. Nó không rõ ràng cho C11, nhưng không thay đổi. –