前提
ソースコードでは1つのファイル、1つの関数からの呼び出しですが、
配列はヘッダファイルに記述したいです。
配列は複数の関数で使いたいです。
以上のことを踏まえてどのような実装が綺麗か教えていただきたいです。
実現したいこと
関数の演算結果を配列の値に用いたいです。どのような実装をすれば綺麗にまとまるか知りたいです。
配列のclacNum_20_25 の箇所にはcalcNum(20,25)の値を入れたいです。
今の状態だと配列を使う関数で毎回 clacNum_20_25 の値を求めなければいけません。新しい関数を作成して、この配列を使う時に気づけない可能性があるのでこれは避けたいです。
該当のソースコード
C
1#include <stdio.h> 2 3#define ARRAY_X 2 4#define ARRAY_Y 3 5 6#define clacNum_20_25 0 7#define clacNum_30_35 0 8#define clacNum_40_45 0 9 10int calcNum(int a , int b); 11 12struct NUM { 13 int a; 14 int b; 15}; 16 17struct NUM num[ARRAY_X][ARRAY_Y] = { 18 { 19 {35 , 40}, 20 {45 , 50}, 21 {55 , 60} 22 }, 23 { 24 {clacNum_20_25,50},//clacNum(20,25) 25 {clacNum_30_35,60},//clacNum(20,25) 26 {clacNum_40_45,70} //clacNum(20,25) 27 } 28}; 29 30int main (void){ 31 num[1][0].a = calcNum(20,25); 32 num[1][1].a = calcNum(30,35); 33 num[1][2].a = calcNum(40,45); 34 35 int i,j; 36 for(i = 0; i < ARRAY_X; i++){ 37 for(j = 0; j < ARRAY_Y; j++){ 38 printf("%d\t%d\n",num[i][j].a,num[i][j].b); 39 } 40 } 41 42} 43 44int calcNum(int a , int b){ 45 int c; 46 c = a + b; 47 return (c); 48}
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー