程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話平安編碼數組記法的分歧性

C說話平安編碼數組記法的分歧性

編輯:關於C++

C說話平安編碼數組記法的分歧性。本站提示廣大學習愛好者:(C說話平安編碼數組記法的分歧性)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話平安編碼數組記法的分歧性正文


對C說話法式來講,在統一文件中時,void func(char *a);  和  void func(char a[]); 完整等價

但在函數原型以外,假如一個數組在一個文件中聲明為指針,在另外一個分歧的文件中聲明為數組,那末它們是不等價的

示例代碼以下:

//main.c
#include<stdlib.h>
enum {ARRAYSIZE = 100};
char *a;
void insert_a(void);
int main(void) {
  a = (char*)malloc(ARRAYSIZE);
  if(a == NULL) {
    //處置分派毛病
  }
  insert_a();
  return 0;
}
//insert_a.c
char a[];
void insert_a(void) {
  a[0] = 'a';
}

處理計劃以下:

//insert_a.h
enum {ARRAYSIZE = 100};
extern char *a;
void insert_a(void);
//insert_a.c
#include "insert_a.h"
char *a;
void insert_a(void) {
  a[0] = 'a';
}
//main.c
#include<stdlib.h>
#include"insert_a.h"
int main(void){
  a = (char*)malloc(ARRAYSIZE);
  if(a == NULL) {
    //處置分派毛病
  }
  insert_a();
  return 0;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved