반응형
C의 이 이상한 함수 정의 구문은 무엇입니까?
최근에 GNU 바이슨을 사용하면서 몇 가지 함수 정의를 본 적이 있습니다.
static VALUE
ripper_pos(self)
VALUE self;
{
//code here
}
왜 유형은self
괄호 밖에?이것이 유효한 C입니까?
이는 파라미터의 유형을 별도로 선언하는 오래된 K&R 스타일 함수 파라미터 선언입니다.
int func(a, b, c)
int a;
int b;
int c;
{
return a + b + c;
}
이는 함수 매개 변수를 선언하는 보다 현대적인 방법과 동일합니다.
int func(int a, int b, int c)
{
return a + b + c;
}
"새로운 스타일"의 선언은 기본적으로 보편적으로 선호됩니다.
이것은 함수 선언 인수의 소위 "오래된" 변형입니다.옛날에는 괄호 안에만 인수 유형을 쓸 수는 없었지만, 괄호 안의 종결 괄호 바로 뒤에 각 인수별로 정의해야 했습니다.
즉, 다음과 같습니다.ripper_pos( VALUE self )
예, 함수 본문의 따옴표 앞에 매개 변수 sans type이 괄호 안에 나열된 이전 스타일의 함수 정의를 사용합니다. 따라서 함수 본문의 따옴표 앞에 해당 변수의 유형을 선언합니다.self
유형의VALUE
.
이것은 오래된 c입니다. K&RC는 ANSIC가 입력된 매개변수를 적용하기 전에 이 규칙을 사용했습니다.
static VALUE // A static function that returns 'VALUE' type.
ripper_pos(self) // Function 'ripper_pos' takes a parameter named 'self'.
VALUE self; // The 'self' parameter is of type 'VALUE'.
인수 이름을 먼저 지정하고 유형을 지정하는 오래된 C 코드입니다.여기 예를 들어 보세요.
언급URL : https://stackoverflow.com/questions/3016213/what-is-this-strange-function-definition-syntax-in-c
반응형
'code' 카테고리의 다른 글
Wordpress + Vue.js : 연락처 양식 (0) | 2023.10.05 |
---|---|
Wordpress post__not_in() 기능이 위젯 배열의 현재 게시물을 제외하지 않습니다. (0) | 2023.10.05 |
MAMP에 mysqldump 추가(MacOS X의 MySQL /w Apache PHP) (0) | 2023.10.05 |
C 프로그램이 종료하지 않고 코어 덤프를 생성할 수 있는 방법은 무엇입니까? (0) | 2023.10.05 |
SQL - Oracle에서 일치하는 간격 찾기 (0) | 2023.10.05 |