编程语言
首页 > 编程语言> > 《C现代编程集成开发环境、设计模式、极限编程、测试驱动开发、重构、持续集成》读书笔记1

《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