いろいろ疑問のある質問内容なので、以下が求めているプログラムなのかどうかは不明です。
#include <stdio.h>
#include <tchar.h>
struct tag_bit_field
{
int a:1;
int b:1;
int c:1;
int d:1;
};
struct tag_bit_field set(int a, int b, int c, int d)
{
struct tag_bit_field temp;
temp.a = a ? 1 : 0;
temp.b = b ? 1 : 0;
temp.c = c ? 1 : 0;
temp.d = d ? 1 : 0;
return temp;
}
void get(struct tag_bit_field x, int* a, int* b, int* c, int* d)
{
*a = x.a ? 1 : 0;
*b = x.b ? 1 : 0;
*c = x.c ? 1 : 0;
*d = x.d ? 1 : 0;
}
int main()
{
struct tag_bit_field I;
int A, B, C, D;
A = B = C = D = 1; /* 変数A,B,C,Dに値を設定 */
printf("A, B, C, D = %d, %d, %d, %d\n", A, B, C, D);
I = set(A, B, C, D);/* A,B,C,DをIに保存 */
A = B = C = D = 0; /* 変数A,B,C,Dをリセット */
printf("A, B, C, D = %d, %d, %d, %d\n", A, B, C, D);
get(I, &A, &B, &C, &D);/* IからA,B,C,Dを復元 */
printf("A, B, C, D = %d, %d, %d, %d\n", A, B, C, D);
return 0;
}
お礼
ブール変数です。 多少記述が長くなってしまいますが、理解しやすかったです。 お陰でなんとか思うとおりに動かす事が出来ました。 私の理解不足と、説明不足の中他の方々も回答本当に有難うございました。