一. struct 與 typedef struct的區別
typedef是c語言的關鍵字,作用在於為一種資料定義乙個新名字。資料型別包括內部資料型別(int,char等)和自定義的資料型別(struct型別等)。使結構體使用更加方便。
1.typedef定義時,宣告變數可直接用 goio_stu stu1;(gpio_stu為gpio的別名)
typedef struct gpio
gpio_stu;
2.沒有使用typedef定義時,宣告變數就需要用stuct gpio gpiuo_stu ;(這裡的gpio_stu是變數名)
struct gpio
gpio_stu;
二.在執行過程中動態分配記憶體 一定要使用對應的標頭檔案#include
typedef struct gpio_stu
gpio_stu;
struct gpio_stu * gpio = null ;
gpio = (gpio_stu *) malloc(sizeof(gpio_stu) * (2 + maxsize)) ; // (2 + maxsize))是需要struct空間的個數
例:#include
#include
#include
#include
#include
#include
int maxsize ;//測多少個gpio
time_t start , end ;
/*******stuct 存資料
/typedef struct gpio_stu
gpio_stu;
struct gpio_stu * gpio = null ;
/***********************************讀檔案 ************************************/
void read_buff(char *fopen_gpio_txt)
for (i = 0 ;i}
/錯誤值對應輸出
*************/
void compare_write(file * fp , int pins , int error ,int test)
else if(error == (-1))
else if(error == (-2))
else if(error == (-3))
else if(error == (-4))
else if(error == (-5))
else if(error == (-6))
else if(error == (-7))
else if(error == (-8))
else if(error == (-9))
else if(error == (-10))
else if(error == (-11))
else if(error == (-12))
else if(error == (-13))
else if(error == (-14))
else
if (test == 0)
else if(test == 1)
return ;
}
/開始測試
************/
//int test_buff(char *fopen_result_txt)
void test_buff(file * fp)
else if(modes == 2)
else if(modes == 3)
else if(modes == 4)
else if(modes == 5)
else if(modes == 6)
init[i-2] = gpioinit(pins , mode , 1); //平台gpio初始化
set[i-2] = gpioset(pins , values); //設定輸出模式的gpio埠高/低電平
val[i-2] = gpioget(pins); //獲取輸入模式的gpio埠高/低電平值
printf (「init = %d , set = %d , val = %d」, init[i-2] , set[i-2] , val[i-2]) ;
if((values != val[i-2]) || (init[i-2] != 0) || (set[i-2] != 0) )
}return;}
/normal 模式
*******************/
void measure_mode_times(file * fp)
return 0 ;
}/special 模式
*************/
void measure_mode_timing(file * fp) }
return 0 ;
}/main 函式
**************/
int main(int argc, char *ar**)
printf("--------------------------\n");
fopen_gpio_txt = ar**[1];
printf("--------------------------\n");
read_buff(fopen_gpio_txt);
printf("--------------------------\n");
if(gpio[1].time !=0)
else
fclose(fp) ; //關閉檔案
return 0;
linux系統下struct大小的計算總結
fire今天剛學了結構體,聽的不是很明白,回來之後找了很多資料,然後自己親手證明,總結了結構體大小計算的幾個結論,如果有問題希望大家給予指點 linux系統 pragma pack 預設為4結構體對齊模數是結構體內部最大資料成員長度和pragma pack中的較小者 例如 char a 4 shor...
linux下redis的安裝與運用
redis是當前比較熱門的nosql系統之一,它是乙個key value儲存系統。和memcache類似,但很大程度補償了memcache的不足,它支援儲存的value型別相對更多,包括string list set zset和hash。這些資料型別都支援push pop add remove及取交...
linux下運用opensll製作ssl證書
證書製作步驟 第一步 生成server.key,輸入4位數的密碼 被強制要求 openssl genrsa des3 out server.key 2048第二步 生成不帶密碼的server.key openssl rsa in server.key out server.key第三步 生成serv...