📄 main.c
字号:
#define BUFSIZE 200
#define MCASize 5
#define NumStates 4
char MyChar;
short MyShort;
int MyInt;
float MyFloat;
double MyDouble;
struct MyStructDef
{
char MyChar1;
short MyShort;
char MyChar2;
char MyChar3;
int MyInt;
char MyChar4;
float MyFloat;
double MyDouble;
int MyBitField0To2;
int MyBitField3To5;
char MyCharArray[MCASize];
};
struct MyStructDef MyStruct;
int SideB[BUFSIZE];
int SideA[BUFSIZE];
int Sum[BUFSIZE];
int main(void);
void InitSideA(int *SideAPtr);
void InitSideB(int *SideBPtr);
void WatchDog(int Count);
void SumAB(int *SideAPtr, int *SideBPtr, int *SumPtr);
void IfTest(int Value);
int LoopCounter;
void StateTest(int State);
int main(void)
{
int j = 0;
MyChar = 'a';
MyShort = 10;
MyInt = 7;
MyFloat = 1.2;
MyDouble = 2.1;
MyStruct.MyChar1 = 'a';
MyStruct.MyShort = 10;
MyStruct.MyChar2 = 'b';
MyStruct.MyChar3 = 'c';
MyStruct.MyInt = 7;
MyStruct.MyChar4 = 'd';
MyStruct.MyFloat = 1.2;
MyStruct.MyBitField0To2 = 5;
MyStruct.MyBitField3To5 = 3;
if (MyInt == 6)
{
for (j = 0; j < BUFSIZE; j++)
{
IfTest(j);
}
MyInt = 8;
// Good point to test chained breakpoints.
MyInt++;
}
if (MyInt == 7)
{
for (j = 0; j < BUFSIZE; j++)
{
// Should be >=.
if (j > BUFSIZE / 2)
{
j++;
}
IfTest(j);
}
MyInt = 8;
// Good point to test chained breakpoints.
MyInt++;
}
for (j = 0; j < MCASize; j++)
{
MyStruct.MyCharArray[j] = 'e' + j;
}
InitSideA(&SideA[0]);
MyInt = SideA[0];
MyInt = SideA[1];
MyInt = SideA[2];
InitSideB(&SideB[0]);
WatchDog(1);
WatchDog(BUFSIZE);
SumAB(&SideA[0], &SideB[0], &Sum[0]);
for (j = 0; j < 3; j++)
{
IfTest(j);
}
for (j = 1; j < NumStates; j++)
{
StateTest(j);
}
}
void InitSideA(int *SideAPtr)
{
for (LoopCounter = 0; LoopCounter < BUFSIZE; LoopCounter++)
{
SideAPtr[LoopCounter] = LoopCounter;
}
}
void InitSideB(int *SideBPtr)
{
int i;
// BUFSIZE + 1 is a mistake that causes
// SideA[0] to get overwritten.
for (i = 0; i < BUFSIZE + 1; i++)
{
SideBPtr[i] = i * 2;
}
}
void SumAB(int *SideAPtr, int *SideBPtr, int *SumPtr)
{
int i;
for (i = 0; i < BUFSIZE; i++)
{
SumPtr[i] = SideAPtr[i] + SideBPtr[i];
}
}
void WatchDog(int Count)
{
int i;
for (i = 0; i < Count; i++)
{
Sum[i] = SideA[i] + SideB[i];
}
}
void IfTest(int Value)
{
if (Value == 0)
{
Sum[0] = Value;
return;
}
else
{
if (Value >= BUFSIZE / 2)
{
Sum[Value - 1] = Value * 2;
return;
}
}
return;
}
void StateTest(int State)
{
switch (State)
{
case 1:
{
State++;
break;
}
case 2:
{
State++;
break;
}
case 3:
{
State++;
break;
}
case 4:
{
State = 1;
break;
}
default:
{
State = 1;
break;
}
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -