前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言宏定义、共用体、枚举类型

C语言宏定义、共用体、枚举类型

作者头像
岳泽以
发布2022-10-26 16:12:53
6780
发布2022-10-26 16:12:53
举报
文章被收录于专栏:岳泽以博客

宏定义

在c语言程序编译之前处理的内容。

一般形式:#define 标识符 字符串

  1. 宏定义
  2. 文件包含
  3. 条件编译

1.不带参数的宏定义。

例:输入圆的半径,求圆的周长(2*pi*r)和面积(pi*r*r).

代码语言:javascript
复制
#include<stdio.h>
#define PI 3.14159
int main(){
    float r;
    scanf("%f",&r);
    float s=PI*r*r;
    printf("S=%-10.3f\n",s);
    float c=PI*2*r;
    printf("C=%10.3f\n",c);
    return 0;
}

2.在定义宏的时候,可以使用之前定义过的宏定义。

例:给定圆的半径,求圆的周长(2*pi*r)和面积(pi*r*r).

代码语言:javascript
复制
#include<stdio.h>
#define R 4
#define PI 3.14159
#define L 2*PI*R
#define S PI*R*R
int main(){
    printf("L=%f,S=%f,L,S");
    return 0;
}

3.带参数的宏定义

带参数的宏定义不仅对字符串进行替换,还要对参数进行替换。

一般形式:#define 宏名(参数)字符串

例:给定圆的半径,求圆的面积(pi*r*r

代码语言:javascript
复制
#include<stdio.h>
#define PI 3.14159
#define S(r)PI*r*r 
int main(){
    float a=3.1;
    float area=S(a);
    printf("s=%f",area);
    return 0;
}

#define F(x) x+x

代码语言:javascript
复制
#include<stdio.h>
#define F(x) x+x
int main(){
    int a=6,b=2,c;
    c=F(a)/F(b);//a+a/b+b=6+3+2
    printf("c=%d",c);
    return 0;
}

文件包含有俩种形式:

#include<......>系统提供给用户的

#include"......"用户自定义的文件

main函数

代码语言:javascript
复制
#include<stdio.h>
int main(int a,char *b[]){//参数的个数  字符串 
    int i=0;
    while(i<=2){
        printf("%s\n",*(b+i));
        i++;
    }
    return 0;
}

共用体(union)--数据类型

作用:在同一段内存种,存放不同类型的变量。

代码语言:javascript
复制
#include<stdio.h> 
typedef union Date{
    int i;
    char ch;
    double f;
}D;
int main(){
    D a;
    printf("%d\n",sizeof(a));
    a.i=96;
    a.ch='A';
    printf("%d\n",a.i);
    printf("%c\n",a.ch);
    printf("%f\n",a.f);
    return 0; 
}

枚举类型

如果一个变量只有几种可能的值,则可以定义枚举类型。

enum--->常量整数

定义一个枚举类型,枚举类型种的元素,默认是从0开始的。

代码语言:javascript
复制
#include<stdio.h> 
enum
Weekday{sum=1,moon,tue,wed,thu,fri,sat};
int main(){
    int a;
    enum Weekday w;//整型int常量
    printf("%d\n",sizeof(w));//4
    w=fri;
    printf("%d\n",w); 
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 宏定义
    • 文件包含有俩种形式:
      • main函数
      • 共用体(union)--数据类型
      • 枚举类型
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档