ModularCode2.c,RUN
/*
结构体示例:创建不同的数据实体
不能使用和数据实体相关的全局变量/常量/宏,否则无法复用
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
const int c_maxarray = 1024;
struct MyArray
{
int arr[c_maxarray];
int len;
};
void Test_MyArray();
int main()
{
//结构体定义不同实体
Test_MyArray();
return 0;
}
/*
测试结构体MyArray,创建不同的变量
注意1:Test_MyArray中,MyArray的表达不应该出现实体相关的全局变量,否则,arr1和arr2的不同,将引起该全局变量的冲突
注意2:arr[c_maxarray]存在一个全局的c_maxarray,但这可以类似
struct MyArray
{
int *arr;
int max_array;
int len;
};
完全消除全局常量,但这样使得MyArray的实现变得比较复杂。
在不引起歧义的情况下,本程序采用了简化方式。
*/
void Test_MyArray()
{
struct MyArray arr1;
arr1.len = 0;
for (int i = 0; i < 3; i++)
{
arr1.arr[arr1.len++] = 2 * i + 1;
}
struct MyArray arr2;
arr2.len = 0;
for (int i = 0; i < 4; i++)
{
arr2.arr[arr2.len++] = 2 * i + 0;
}
}