### main.c
ヘッダファイルはダブルクオテーションで囲む
#include#include "array.h" int main(){ int size = 5; int a[size]; range(a, size, 1, 1); int b[size]; range(b, size, 1, -1); int c[size]; init(c, size, 0); printf("a = ");print(a, size); printf("b = ");print(b, size); printf("c = ");print(c, size); // void init(int *a, int size, int num){ // for(int i = 0; i < size; i++){ // a[i] = num; // } // } // for(int i = 0; i < size; i++){ // a[i] = 1 + i * 1; // b[i] = 1 + i * (-1); // } // int a[size] = {1, 2, 3, 4, 5}; // int b[size] = {1, 0, -1, -2, -3}; for(int i = 0; i < size; i++){ c[i] = a[i] + b[i]; } printf("\n"); printf("c = ");print(c, size); return 0; }
array.c
#include#include "array.h" void range(int *a, int size, int start, int step){ for(int i = 0; i < size; i++){ a[i] = start + i*step; } } void init(int *a, int size, int num){ for(int i = 0; i < size; i++){ a[i] = num; } } void zeros(int *a, int size){ for(int i = 0; i < size; i++){ a[i] = 0; } } void print(int *a, int size){ printf("["); for(int i = 0; i < size; i++){ printf("%d,", a[i]); } printf("\b]\n"); }
### ヘッダ
array.h
#ifndef ARRAY_H // 二重でincludeされることを防ぐ #define ARRAY_H void range(int *a, int size, int start, int step); void init(int *a, int size, int num); void zeros(int *a, int size); void print(int *a, int size); #endif
### コンパイル&実行
$ gcc -O2 -o main main.c array.c
$ ./main
a = [1,2,3,4,5]
b = [1,0,-1,-2,-3]
c = [0,0,0,0,0]
c = [2,2,2,2,2]