내가 가지고있는 대학 책에서 C 코드를 공부하고 있었는데 (이 책의 주제는 Linux 프로그래밍 임) 이해가 안되는 코드 줄을 발견했습니다. 조사를 좀 해봤지만 인터넷에서 아무것도 찾지 못했습니다. 누군가 나에게이 코드를 설명 할 수 있습니까?
환경 변수가 무엇인지 알고 있지만 이해하지 못하는 부분은이 int (*det)(), det()
함수가 작동하는 방식입니다. 제목이 정확하지 않다면 죄송합니다. 주제를 더 잘 설명하는 방법을 몰랐습니다.
#include<stdio.h>
int main(){
int (*det)();
det = getenv("foo");
det();
return 0;
}
*** 답장을 보내 주셔서 감사합니다.이 프로그램을 작동시킬 수있는 방법이 있습니까?
누군가 이미 지적했듯이
det = getenv("foo");
그다지 말이 안되며 컴파일러가 충분히 똑똑해서 빠져 나가지 않기를 바랍니다. 다음은 그 책에서 기대했던 내용 일 수 있습니다.
#include <stdio.h>
#include <stdlib.h>
extern char* getenv(const char*);
/* The above statement is not mandatory but would make the code more
* readable. The keyword "extern" here implies that the function is
* is defined elsewhere.
*/
int main(void)
{
char* (*det)(const char*) = getenv;
printf("PATH env variable contains : %s\n", (*det)("PATH"));
/* Replace path with your own environment variable */
printf("Press any key to continue..\n");
getchar();
return 0;
}
여기에 몇 가지 내용을 인쇄하고 있습니다. 필요에 맞게 사용법을 변경하십시오.
참고 문헌
여기에 getenv () 프로토 타입이 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다