c 语言
来源:互联网 发布:淘宝特步 编辑:程序博客网 时间:2024/06/05 09:35
c语言
c 替换 编译 链接 硬编码
c 宏是替换 0x21 链接(所有dll 链接时期)
c 宏
\# define TRUE 1\# define FALSE 0 //编译前替换\# define MAX(A,B) ((A)>(B)?(A):(B))//不开辟堆栈//宏与函数的区别:函数分配额外的堆栈空间,而宏只是替换//为了避免出错,宏定义中给形参加上括号//末尾不需要分号//define 可以替换多行的代码,记得后面加\#define MALLOC(n,type)\ ((type*)malloc((n)*sizeof(type)))
define 定义宏
typedef 重命名一种数据类型
define NUMBER 6
程序中凡是写NUMBER的地方,编译器会自动替换成6
typedef int myint
重定义int类型为myint类型,程序里就可以用myint类型定义变量,效果等同于int类型,主要是方便理解代码中变量的意义,比如定义typedef int age,然后用age类型定义变量,很容易就可以看出这是指年龄,比用int更清楚
头文件:
\#include "stdafx.h"//.h声明,cpp里面函数\#include "stdlib.h"\#include "windows.h"void Function(){ printf("Hello World!");}int main(int argc,char* argv[]){ Function(); system("pause"); return 0;}
重复包含问题:
x.h/#include z.h y.h/#include z.hz.hstruct Student{ int level;}//解决方案:/#if !defined(zzz)#define ZZZstruct Student{ int level;}#endif
内存分配与释放
将记事本的.exe文件读取到内存,并返回读取后在内存中的地址。
不知道exe文件多大。需要动态申请内存。
malloc int main(int argc, char* argv[]){ int* ptr; //在堆中申请内存,分配128个int ptr = (int *)malloc(sizeof(int)*128); //无论申请的空间大小 一定进行校验 判断是否申请成功 if(ptr==NULL){ return 0; } //初始化分配的空间 memset(ptr,0,sizeof(int)*128) //使用。。。 *(ptr)=1; //使用完毕 释放申请的堆空间 free(ptr); //将指针设置为null ptr=null; return 0; }
void * 任何类型的指针
void* malloc(size_t) //需要释放
32位机器每一个exe都有一个4g的虚拟空间
代码区
数据区:
栈区
全局区
常量区
堆:动态内存在堆中分配 。现用现分。
文件读写:
1、fopen函数
2、fseek函数
3、ftell函数
4、fclose函数
阅读全文
0 0
- C语言
- C语言
- C语言
- C语言
- C语言
- c语言
- C语言
- C语言
- C语言
- C语言
- c语言
- C语言
- C语言
- C语言
- c语言
- C语言
- c语言
- c语言
- 扑克牌顺子(字符串)
- 哪种Map遍历方法更优?!—Map遍历方法的正确选择
- centos7 安装配置并连接putty
- MySQL的主从复制
- JavaScript 14 冒泡排序
- c 语言
- 最大差值
- mybatis非接口开发helloworld--最基本单表crud包括获得插入返回id,#$注入的区别
- Hbase的使用
- 51相关知识积累
- SAS学习笔记(四)
- HttpServletBean 源码阅读
- method_软阈值算子(Soft Thresholding)
- 为什么Wi-Fi用的最多是1,6,11 信道