一个C问题
总是想着用计算机来运行程序,自己看不出来结果,虽然答案出来了但是还是不理解,谁指点下?问题本身在哪里
首要你要知道这个程序的运行流程~
其次你要知道这个程序每个语句的功能~
最后~试数~用电脑运行的思路来模拟出运行的结果~ 风过无痕丶 发表于 2018-4-4 12:35
首要你要知道这个程序的运行流程~
其次你要知道这个程序每个语句的功能~
最后~试数~用电脑运行的思路来模 ...
程序流程应该知道,就是程序每条语句的功能,不能每个都搞懂,最后就迷糊了。但是放到编译器里,关键字的颜色突出时 ,能很快搞懂流程大概,如果在纸上就不行了。这是为什? BngThea 发表于 2018-4-4 12:32
问题本身在哪里
代码么?
#include <stdio.h>
#define TEST_MODE
#define POWER_OFF
typedef unsigned intUINT32;
typedef void(*pfpSATATE)(UINT32 msg,UINT32 param);
typedef enum{
APP_STATE_NULL =0x0,
APP_STATE_POWER_ON =0x1,
APP_STATE_POWER_OFF =0x2,
}appState_e;
typedef struct appState_s{
pfpSATATE pfpState;
char *name;
}appState_t;
typedef struct appStateInfo_s{
appState_eprevState;
appState_eactiveState;
appState_enextState;
UINT32 oaram;
}appStateInfo_t;
static appStateInfo_t stAppStateInfo =
{
APP_STATE_NULL,/* previous state*/
APP_STATE_POWER_OFF,/*active state*/
APP_STATE_NULL,/*next state*/
{0,0}
}; /*state param*/
static pfpSATATE pActiveState=NULL;
static int number=0;
void appNullState(UINT32 msg, UINT32 param)
{
number=msg+param;
}
void appPowerOnState(UINT32 msg, UINT32 param)
{
number=msg%param;
}
void appPowerOffState(UINT32 msg,UINT32 param)
{
number=msg/param;
}
static appState_t appStateTb1[]=
{
{appNullState,"Null"},
{appPowerOnState,"Pwr On"},
{appPowerOffState,"Pwr Off"},
};
int main(int argc,char* argv[])
{
// appFindJPGHead();
#if(defined TEST_MODE&&defined POWER_OFF)
pActiveState=appStateTb1.pfpState;
pActiveState(10,5);
printf("number=%d\n",number);
#else
pActiveState=appStateTb1.pfpState;
pActiveState(15,5);
printf("number=%d\n",number);
#endif
return 0;
} 放到纸上的建议不要直接写源代码了 为什么不考虑用伪代码来写 简单明了易于梳理 源代码在编译平台写有优势在纸上些伪代码也有优势 本帖最后由 桃花飞舞 于 2018-4-14 21:30 编辑
代号3 发表于 2018-4-14 17:07
放到纸上的建议不要直接写源代码了 为什么不考虑用伪代码来写 简单明了易于梳理 源代码在编译平台写有优势 ...
伪代码我之前没接触过!还有我现在结构体,链表,队列,内存池,这些都不会,有没什么好的建议啊!如果学了C++再来学这些,我时间上不允许啊,现在我看不见曙光 这些都只是一种思想 按照你的意愿去完成任务 如你所愿的代码 队列也好 内存池也好 因为你需要他们 他们才会出现 桃花飞舞 发表于 2018-4-14 21:28
伪代码我之前没接触过!还有我现在结构体,链表,队列,内存池,这些都不会,有没什么好的建议啊!如果 ...
天生不会c吧 也是接触感兴趣好学才学的啊
页:
[1]