《C现代编程集成开发环境、设计模式、极限编程、测试驱动开发、重构、持续集成》读书笔记1
作者:互联网
C 与 模块化
经典栈代码
/**
*@file: Stack.h
*/
#ifndef _STACK_H_
#define _STACK_H_
#ifdef __cplusplus
extern "C" {
#endif
bool push(int val);
bool pop(int *pRet);
void show(void);
#ifdef __cplusplus
}
#endif
#endif
/**
*@file: Stack.c
*/
#include <stdbool.h>
#include "stack.h"
int buf[16];
int top = 0;
bool isStackFull(void)
{
return top == sizeof(buf) / sizeof(int);
}
bool isStackEmpty(void)
{
return top == 0;
}
bool push(int val)
{
if (isStackFull())
{
return false;
}
buf[top++] = val;
return true;
}
bool pop(int *pRet)
{
if (isStackEmpty())
{
return false;
}
*pRet = buf[--top];
return true;
}
在代码中,pop函数, push函数对外提供使用, 但是buf变量, isStackFull函数, isStackEmpty函数,其实它们都与Stack数据结构相关, 但是它们任然可以被外界调用或是修改。为了使这些不对外暴露,仅仅对所在文件的范围可见(Stack.c)可以使用static
关键字改变链接属性。
标签:集成,return,读书笔记,int,top,编程,bool,buf,void 来源: https://www.cnblogs.com/yangcyan-blog/p/16491640.html