|
如下是嵌入式系统高级C编程书中的内容:
如书中所说,一个潜在的约定是不对输入指针参数所指向的内容进行任何写入操作.这个如何理解?
例如下面我写的部分代码,我想通过按键的键值key来修改ACTIVE类型变量的值,那我设计的这个函数是不是已经违反了这个"潜在的约定",那假如我想遵守这个约定,我该如何修改我的代码,还是说这个约定本身就由漏洞?
恳请大神指教~~~
- typedef struct Active
- {
- int ActivePage;
- int ActiveItem;
- }ACTIVE;
- int SysKey;
- ACTIVE SysAct;
- void MenuSet(ACTIVE *act, const int key)
- {
- switch(key)
- {
- case KEY_SWI_PRES:
- act->ActivePage++;
- act->ActiveItem = 0;
- if (act->ActivePage >= SYS_PAGE_NUMBER)
- {
- act->ActivePage = 0;
- }
- break;
- case KEY_INC_PRES:
- act->ActiveItem++;
- if (act->ActiveItem >= SysPageTable[act->ActivePage]->ItemNumber)
- {
- act->ActiveItem = SysPageTable[act->ActivePage]->ItemNumber - 1;
- }
- break;
- case KEY_DEC_PRES:
- act->ActiveItem--;
- if (act->ActiveItem <= 0)
- {
- act->ActiveItem = 0;
- }
- break;
- case KEY_ENT_PRES:
- /* */
- break;
- default:
- break;
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|