多文件编程 【多文件编程】(26)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                多文件编程 【多文件编程】(26)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                注重實現方法論
- 步驟
- 代碼演示
- main.c文件
- test.c文件
- test.h文件
 
- 小結
步驟
1, 把一類功能的所有函數實現寫到 xxx.c文件里面。
 2, 把xxx.c 中所有的函數聲明寫到 xxx.h中。
 3, 在xxx.h中加入避免頭文件重復包含的語句。
 4, 將xxx.h 包含到xxx.c中。(自包含)自實現包含頭文件時用雙引號 不用 < >。
 5, 在 main.c文件中包含 xxx.h (隨用隨包含)
 6, 在 main.c文件中的main函數中調用實現功能的函數。
代碼演示
main.c文件
#include <stdio.h> #include "test.h" int main() { //函數調用char array[100] = "hello";char array1[100] = "hello";int ret = myStrcmp(array, array1);if (ret > 0)printf("array > array1\n");else if(ret < 0)printf("array < array1\n");elseprintf("array = array1\n");char array2[100] = "world";int len = myStrlen(array2);printf("array2 len = %d\n", len);char array3[100] = "hello";char array4[100] = "world";myStrcat(array3, array4);printf("cat after : %s\n", array3);char array5[100] = "hello";char array6[100] = {0};myStrcpy(array6, array5);printf("array6 : %s\n", array6);return 0; }test.c文件
//函數實現 #include "test.h" int myStrcmp(char* s1, char* s2) {for (; *s1 && *s2 && *s1 == *s2; s1++, s2++);return *s1 - *s2; }int myStrlen(char* str) {int len;for (len = 0; *str++; len++);return len; }void myStrcat(char* firstName, char* lastName) {char* p = firstName;char* q = lastName;while (*p)p++;while (*p++ = *q++); }void myStrcpy(char* to, char* from) {int i = 0;while (to[i++] = *from++); }test.h文件
#pragma once //防止頭文件重復包含//也可以用下面方式防止頭文件重復包含 /*#ifndef _TEST_H__ #define _TEST_H__函數聲明#endif *///函數聲明 int myStrcmp(char* s1, char* s2); int myStrlen(char* str); void myStrcat(char* firstName, char* lastName); void myStrcpy(char* to, char* from);運行結果為:
 
小結
將來在實際開發中編寫的業務邏輯代碼,把xxx.c實現功能的函數做成.so庫。只是提供xxx.h函數的聲明,讓其他使用者只是知道有哪些功能以及如何調用函數接口。而不提供函數的實現。
我們知道庫是二進制文件,并不是文本文件,所以別人并不能看懂,相當于一次加密。當然庫還有更高級的加密方式,但是給別人提供庫已經是一種加密。
總結
以上是生活随笔為你收集整理的多文件编程 【多文件编程】(26)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: C++多态:多态实现原理剖析,虚函数表,
- 下一篇: C语言程序流程设计之跳转【程序流程设计】
