Поскольку C не поддерживает перегрузку методов, как это возможно, чтобы иметь методы, как open
, которые явно предлагает две различные сигнатуры:метод перегрузки в C
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
Я имею в виду, printf
поддерживает варьировать число аргументов, используя vargs
, но не имеют определенной подписи, отличной от той, которая используется vargs
- в противном случае должна быть одна подпись for each possible printf
. Тем не менее, open()
- как я полагаю, - написан на C и предлагает две явные подписи.
Я действительно не реализовал эти функции. Может ли кто-нибудь показать небольшой пример того, как функционирует функция:
void foo() { printf("bar\n"); }
void foo(int x) { printf("bar %d\n", x); }
будет реализован в C?
Я задавал подобный вопрос, прежде чем, пожалуйста, обратитесь к: [здесь] [1] [1]: http://stackoverflow.com/questions/3953895/why-does-man-2 -open-say-this –
@GreenCode Я искал перегрузку метода, но ваш вопрос не отображался; вот почему я спросил. +1 Спасибо за ссылку. – Rubens