鱼C论坛

 找回密码
 立即注册
查看: 289|回复: 8

一个C问题

[复制链接]
最佳答案
1 
发表于 2018-4-4 12:21:38 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
总是想着用计算机来运行程序,自己看不出来结果,虽然答案出来了但是还是不理解,谁指点下?
最佳答案
1193 
发表于 2018-4-4 12:32:14 | 显示全部楼层
问题本身在哪里
最佳答案
67 
发表于 2018-4-4 12:35:54 | 显示全部楼层
首要你要知道这个程序的运行流程~
其次你要知道这个程序每个语句的功能~
最后~试数~用电脑运行的思路来模拟出运行的结果~
最佳答案
1 
 楼主| 发表于 2018-4-4 23:05:23 | 显示全部楼层
风过无痕丶 发表于 2018-4-4 12:35
首要你要知道这个程序的运行流程~
其次你要知道这个程序每个语句的功能~
最后~试数~用电脑运行的思路来模 ...

程序流程应该知道,就是程序每条语句的功能,不能每个都搞懂,最后就迷糊了。但是放到编译器里,关键字的颜色突出时 ,能很快搞懂流程大概,如果在纸上就不行了。这是为什?
最佳答案
1 
 楼主| 发表于 2018-4-4 23:07:03 | 显示全部楼层
BngThea 发表于 2018-4-4 12:32
问题本身在哪里

代码么?
#include <stdio.h>
#define TEST_MODE
#define POWER_OFF
typedef unsigned int  UINT32;
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_e  prevState;
        appState_e  activeState;
        appState_e  nextState;
        UINT32 oaram[2];
}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[stAppStateInfo.activeState].pfpState;
        pActiveState(10,5);
        printf("number=%d\n",number);
#else
        pActiveState=appStateTb1[stAppStateInfo.activeState].pfpState;
        pActiveState(15,5);
        printf("number=%d\n",number);
#endif
        return 0;
}
最佳答案
0 
发表于 2018-4-14 17:07:47 | 显示全部楼层
放到纸上的建议不要直接写源代码了 为什么不考虑用伪代码来写 简单明了易于梳理 源代码在编译平台写有优势在纸上些伪代码也有优势
最佳答案
1 
 楼主| 发表于 2018-4-14 21:28:01 | 显示全部楼层
本帖最后由 桃花飞舞 于 2018-4-14 21:30 编辑
代号3 发表于 2018-4-14 17:07
放到纸上的建议不要直接写源代码了 为什么不考虑用伪代码来写 简单明了易于梳理 源代码在编译平台写有优势 ...


伪代码我之前没接触过!还有我现在结构体,链表,队列,内存池,这些都不会,有没什么好的建议啊!如果学了C++再来学这些,我时间上不允许啊,现在我看不见曙光
最佳答案
12 
发表于 2018-4-14 21:36:08 | 显示全部楼层
这些都只是一种思想 按照你的意愿去完成任务 如你所愿的代码 队列也好 内存池也好 因为你需要他们 他们才会出现
最佳答案
0 
发表于 2018-4-15 19:49:16 | 显示全部楼层
桃花飞舞 发表于 2018-4-14 21:28
伪代码我之前没接触过!还有我现在结构体,链表,队列,内存池,这些都不会,有没什么好的建议啊!如果 ...

天生不会c吧 也是接触感兴趣好学才学的啊
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号 )

GMT+8, 2018-7-17 02:25

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表