[완료] 이상한 함수본체 sort(a,n) item *a; { ...}
안녕하세요 다들 안녕하신지요? :)
beginning linux programming 3/e 에서 10장 디버깅부분을 보고 있는데요.
책에서 주어진 코드가 이해가 안가서요.
아래 코드에서 굵게 표시된 부분입니다.
/* 1 */ typedef struct {
/* 2 */ char *data;
/* 3 */ int key;
/* 4 */ } item;
/* 5 */
/* 6 */ item array[] = {
/* 7 */ {"bill", 3},
/* 8 */ {"neil", 4},
/* 9 */ {"john", 2},
/* 10 */ {"rick", 5},
/* 11 */ {"alex", 1},
/* 12 */ };
/* 13 */
/* 14 */ sort(a,n)
/* 15 */ item *a;
/* 16 */ {
/* 17 */ int i = 0, j = 0;
/* 18 */ int s;
/* 19 */
/* 20 */ for(; i < n & s != 0; i++) {
/* 21 */ s = 0;
/* 22 */ for(j = 0; j < n; j++) {
/* 23 */ if(a[j].key > a[j+1].key) {
/* 24 */ item t = a[j];
/* 25 */ a[j] = a[j+1];
/* 26 */ a[j+1] = t;
/* 27 */ s++;
/* 28 */ }
/* 29 */ }
/* 30 */ n--;
/* 31 */ }
/* 32 */ }
/* 33 */
/* 34 */ main()
/* 35 */ {
/* 36 */ sort(array,5);
/* 37 */ }
무슨 함수본체 선언해놓은거 같은데 처음 보는 생김새라 이해가 안가네요
답변 미리 감사드립니다 :)
옛날 방식이예요
/* int */ sort(a,n)
item *a;
/* int n; */
{
표준화 이전의 비원형함수 정의 방법이예요
소괄호안에는 명칭 리스트가 오고
그 아래 따로 그 명칭에 대한 선언 리스트가 오는방식이예요
명칭리스트에는 나오고 선언리스트에는 나오지 않는 명칭은 자동적으로 int로 선언된것으로 간주하구요
함수또한 반환형이 생략되어 int형으로 선언된것으로 봐요
와 정말 감사합니다 !!
새해 복 많이 받으세요 감사합니다!!! :)
으헤헤
------------
힘들면 즐겁다.
------------
힘들면 즐겁다.
댓글 달기