<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                我們定義一個錯誤處理函數,這個錯誤處理函數可以讓其他程序使用,如下: ```c #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #define BUF_SIZE 50 void err_exit(const char *format, ...) { char errorMsg[BUF_SIZE]; va_list argList; va_start(argList, format); vsprintf(errorMsg, format, argList); // 將可變參數以fotmat格式保存到errorMsg字符串 printf("Error:%s\n", errorMsg); // 將錯誤信息輸出到標準輸出 va_end(argList); exit(0); } ``` 假設a.c和b.c兩個程序都需要使用這個函數,最簡單做法是每個程序復制一份函數的代碼,但是有更多的程序需要用到這個函數時,應該考慮如何把函數抽出來公用,這樣也方便維護代碼; 首先將函數提取到一個單獨文件error_functions.c ```c void err_exit(const char *format, ...) { char errorMsg[BUF_SIZE]; va_list argList; va_start(argList, format); vsprintf(errorMsg, format, argList); // 將可變參數以fotmat格式保存到errorMsg字符串 printf("Error:%s\n", errorMsg); // 將錯誤信息輸出到標準輸出 va_end(argList); exit(0); } ``` 再創建一個頭文件error_functions.h,并聲明函數 ```c #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #define BUF_SIZE 50 void err_exit(const char *format, ...); ``` 每個程序引入該頭文件,以下為a.c文件 ```c #include "error_functions.h" int main(int argc, char const *argv[]) { err_exit("%s, msg:%s", "save failed", "param error"); return 0; } ``` 最后是編譯,將a.c和error_functions.c編譯并且鏈接到同一個文件 ```c gcc a.c error_functions.c -o a ``` 當a.c調用err_exit函數時會自動鏈接到error_functions.c文件中的函數
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看