ModularCode2.cRUN

/*
结构体示例:创建不同的数据实体
	不能使用和数据实体相关的全局变量/常量/宏,否则无法复用
*/

#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;
	}
}