#include<iostream>
#include"vector"
#include<assert.h>
#include<stdio.h>
#include<stdlib.h>
/*
<>头文件在Unix中默认从/use/bin/inlcude中查找
""头文件默认从当前目录下查找,若没有再从/use/bin/inlcude中查找
对include的处理是递归的
和define都是在预处理过程中处理
gcc -c(编译源文件,不生产可执行文件) -E(只进行预处理,输出结果)
*/
using namespace std;
/*
#ifndef _vector_h_
#define _vector_h_
*/
// #pragma仍然可用
#define kwidth 40//只是对源程序的替换
#define khight 80//define 不会替换字符串常量
#define kpermite 2*(kwidth+khight)
//宏
#define MAX(a,b) (a>b?a:b)//实现一个内联函数,返回了数字
//减少重复
#define NthElemAddr(base,elemSize,index) ((char *)base+index*elemSize)
// #ifdef NDEBUG
// #define assert(cond) (void)0
// #else
// #define assert(cond) cond?((void) 0):fprintf(stderr," "),exit(0)
/*预处理过程中只处理文本替换,出现的问题是在编译阶段报出*/
/*程序的效率与调用和返回相关较大,但可读性需要考虑*/
/*相比于define ,const static*/
/*
预处理(文本流)->编译(.o文件)->链接(可执行文件)
*/
int main()
{
// cout<<kpermite<<endl;
// cout<<MAX(kwidth,khight)<<endl;
void *memory=malloc(400);//call <malloc>
//
assert(memory!=NULL);
printf("yeah!"); //call <printf>
free(memory); //call <free>
return 0;
}
// #endif
编程范式第12节代码笔记
最新推荐文章于 2024-06-21 18:15:16 发布