C语言文件包含

这篇博客介绍了在C语言中如何使用#include指令包含头文件,以及使用尖括号和双引号的区别。讨论了头文件重复包含可能导致的问题,并提出了预防方法,如使用条件编译指令或#pragma once。此外,还提供了一个宏定义示例,用于计算结构体成员相对于首地址的偏移量。
摘要由CSDN通过智能技术生成

#include

用<>来包含库中头文件,如stdio.h

用“”来包含文件夹下自己定义的头文件,如果没有找到,就去找库中头文件

“”比<>的查找范围大,但是更费时

头文件的使用可能会重复,造成代码冗余,如:

一个同事写了test1.h,其中包含了stdio.h,另一个同事写了test2.h,其中也包含stdio.h,自己用同事的代码时,把test1.h、test2.h、stdio.h都包含了,这里stdio.h就被多重复了两遍

解决:

#ifdef __TEST_H__
#define __TEST_H__
//需要使用的头文件
#endif

如果没有定义过,就定义一个,再使用头文件,如果被定义过了,就不再使用这个头文件了

或者:#pragma once//此法较常见

百度笔试题:编写宏,计算结构体中某变量相对于首地址的偏移

#include<stdio.h>
struct S
{
    char c1;
    int a;
    char c2;
};
#define OFFSETOF(struct_name,member_name) (int)&(((struct_name*)0)->member_name)
int main()
{
    printf("%d\n",OFFSETOF(struct S,c1));
    printf("%d\n",OFFSETOF(struct S,a));
    printf("%d\n",OFFSETOF(struct S,c2));
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值