C 언어 지식 을 총 결 하 다.
우선 함수 하나 보기:
int max_bank(void)
{
static int max;
int b = 0;
struct dirent *de;
DIR *d;
<pre name="code" class="cpp"> if (max)
return max;
d = opendir(BANKS);
if (!d) {
fprintf(stderr, "warning: cannot open %s: %s
", BANKS,
strerror(errno));
return 0xff;
}
while ((de = readdir(d)) != NULL) {
if (sscanf(de->d_name, "bank%u", &b) == 1)
if (b > max)
max = b;
}
closedir(d);
return max;
}
4. 567913. 이 함 수 를 두 번 째 로 호출 할 때 바로 max 로 돌아 가 뒤의 코드 를 실행 하지 않 아 도 됩 니 다.
2. fprintf 와 strerrno
위의 함수 에서 가장 재 미 있 는 것 은 오류 처리 입 니 다. fprintf 를 사용 하여 오류 정 보 를 표준 오류 에 출력 하고 함수 strerrno 를 사용 하여 오류 코드 를 오류 정보 로 변환 합 니 다.
3.sscanf
sscanf 함 수 는 주어진 문자열 에서 데 이 터 를 추출 하 는 데 사 용 됩 니 다. 예 를 들 어 위의 예 는 문자열 'bankX' 에서 데 이 터 를 추출 하고 X 는 숫자 를 대표 합 니 다.
4.sysconf
sysconf 함 수 는 시스템 에 대한 정 보 를 얻 는 데 사 용 됩 니 다.예컨대
我们知道在第一次调用这个函数的时候,会将变量 max 初始化,以后再次调用这个函数的时候,变量 max 就不会被初始化了,而是保持着原有的值。原因是 static 类型的变量在函数结束后,并不释放这个变量所占用的内存。这和类中的静态成员变量有点类似。所以,我们看到这个函数利用这个特点对函数进行优化,没错,就是下面的代码:if (max) return max;
시스템 에서 가장 큰 cpu 수 를 가 져 오 는 데 사용 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.