首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言自定義 strcmp 函數:一個拼寫錯誤導致的鏈接錯誤

     編輯:程式設計疑難解答

錯誤代碼

// 聲明
int my_strcmp(char *, char *);

// 定義
int my_srtcmp(char *s, char *t) {  // 拼寫錯誤:srtcmp
    // ...
}

編譯器報錯

undefined reference to 'my_strcmp':鏈接器找不到 my_strcmp 的定義,因為定義時寫成了 my_srtcmp。

修正

int my_strcmp(char *s, char *t) {  // 統一拼寫
    // 正確實現
    for (; *s && *t && *s == *t; s++, t++);
    return *s - *t;
}

補充:標準 strcmp 邏輯

返回 *s - *t 可一次性處理三種情況(<、=、>),比多個 if 更簡潔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved