c 语言

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.h
z.h
struct Student{
    int level;
}
//解决方案:
/#if !defined(zzz)
#define ZZZ
struct 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函数

练习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值