C 언어 지식 을 총 결 하 다.

1. static 의 사용
     우선 함수 하나 보기:
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 수 를 가 져 오 는 데 사용 합 니 다.

좋은 웹페이지 즐겨찾기