美文网首页
C-typedef和#define

C-typedef和#define

作者: 小石头呢 | 来源:发表于2019-08-05 14:32 被阅读0次

一.typedef关键字

  • typedef 仅限于为类型定义符号名称

  • typedef由编译器执行解释的

#include <stdio.h>
#include <string.h>
 
typedef struct Books{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} Book;
 
int main( ){
   Book book;
 
   strcpy( book.title, "C 教程");
   strcpy( book.author, "Runoob"); 
   strcpy( book.subject, "编程语言");
   book.book_id = 12345;
 
   printf( "书标题 : %s\n", book.title);
   printf( "书作者 : %s\n", book.author);
   printf( "书类目 : %s\n", book.subject);
   printf( "书 ID : %d\n", book.book_id);
 
   return 0;
}

//运行结果
书标题 : C 教程
书作者 : Runoob
书类目 : 编程语言
书 ID : 12345

二.#define指令

  • #define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE

  • #define是由预编译器处理的

#include <stdio.h>
 
#define TRUE  1
#define FALSE 0
 
int main( ){
   printf( "TRUE 的值: %d\n", TRUE);
   printf( "FALSE 的值: %d\n", FALSE);
 
   return 0;
}

//运行结果
TRUE 的值: 1
FALSE 的值: 0

三.typedef 与 #define 的区别

  • #define可以使用其他类型说明符对宏类型名进行扩展,但对 typedef 所定义的类型名却不能这样做。
#define INTERGE int;
unsigned INTERGE n;  //没问题
typedef int INTERGE;
unsigned INTERGE n;  //错误,不能在 INTERGE 前面添加 unsigned
  • 在连续定义几个变量的时候,typedef 能够保证定义的所有变量均为同一类型,而 #define 则无法保证。
#define PTR_INT int *
PTR_INT p1, p2;        //p1、p2 类型不相同,宏展开后变为int *p1, p2;
typedef int * PTR_INT
PTR_INT p1, p2;        //p1、p2 类型相同,它们都是指向 int 类型的指针。

相关文章

  • C-typedef和#define

    一.typedef关键字 typedef 仅限于为类型定义符号名称 typedef由编译器执行解释的 二.#def...

  • iOS 宏(define)与常量(const)的理解

    define和const 在iOS开发中经常会用到define和const。下面我们就来看看宏(define)和常...

  • const和#define

    const 和#define区别 相同点: 定义的值不可变 不同点: const:用const 在使用的地方,只会...

  • #define和const

    c语言只有#define,c++可以用#define和const来定义常量。const比#define更具优势。 ...

  • typedef 和 #define

    typedef int datatype define datatype int 其中,typedef是类型的别名...

  • const和#define

    (1)const和#define都可以定义常量,但是const用途更广。 (2)const 常量有数据类型,而宏常...

  • #define用法以及#define和typedef区别

    1.简单的define定义 2.define的"函数定义" define可以像函数那样接受一些参数,如下 因为这个...

  • C宏定义开关__181224

    #define '#define'是最常规的格式,通常是用于大段屏蔽代码的#define 0 #ifndef和#i...

  • typedef 和 define iOS

    1、typedef 作用:给类型起别名 例子: typedef double NSTimeInterval; //...

  • define 和 typedef 区别

    typedef 一种在计算机编程中用来声明自定义数据类型,配合各种原有数据类型达到简化编程目的的类型定义关键字 t...

网友评论

      本文标题:C-typedef和#define

      本文链接:https://www.haomeiwen.com/subject/eosydctx.html