programing

매개 변수 동작이 없는 C 함수

javamemo 2023. 6. 9. 21:42
반응형

매개 변수 동작이 없는 C 함수

누가 다음 코드가 경고나 오류 없이 컴파일되는 이유를 설명해 줄 수 있습니까?

나는 컴파일러가 그 함수가 나에게 경고하기를 기대합니다.no_args인수를 기대하지 않습니다.

하지만 코드는 기능을 컴파일하고 실행합니다.no_args재귀적으로

static void has_args(int a, int b, int c) { 
    printf("has_args\n");
}

static void no_args() {
    printf("no_args\n");
    no_args(1, 2, 3);
}

void main() {
  no_args();
}

C++에서,void no_args()매개 변수를 사용하지 않고 아무것도 반환하지 않는 함수를 선언합니다.

주식회사,void no_args()지정되지 않은(변수가 아닌) 수의 매개 변수를 사용하고 아무것도 반환하지 않는 함수를 선언합니다.따라서 모든 통화는 (프로토타입에 따라) C에서 유효합니다.

C에서 사용void no_args(void)매개 변수를 사용하지 않고 반환하지 않는 함수를 선언합니다.

빈 인수 목록을 사용하여 함수를 선언하면 K&R(사전 프로토타입) 의미론이 호출되며 매개 변수 목록에 대해 아무것도 가정되지 않습니다. 이는 사전 ANSIC 코드가 여전히 컴파일되도록 하기 위함입니다.파라미터 리스트가 비어 있는 프로토타입 함수를 사용하려면(void)대신에().

언급URL : https://stackoverflow.com/questions/5929711/c-function-with-no-parameters-behavior

반응형