/* 目录: 一 #pragma once 二 typedef 三 #ifdef */
一 #pragma once
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式
二 typedef
// 给类型/结构取别名
#include "stdafx.h"
typedef char * PCHAR;
int main(int argc, char *argv[])
{
char szStr[20] = "test";
PCHAR pStr = szStr;
printf("%c", *pStr);
return 0;
}
// 系统编写 - minwindef.h typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT; typedef FLOAT *PFLOAT; typedef BOOL near *PBOOL; typedef BOOL far *LPBOOL; typedef BYTE near *PBYTE; typedef BYTE far *LPBYTE; typedef int near *PINT; typedef int far *LPINT; typedef WORD near *PWORD; typedef WORD far *LPWORD; typedef long far *LPLONG; typedef DWORD near *PDWORD; typedef DWORD far *LPDWORD; typedef void far *LPVOID; typedef CONST void far *LPCVOID; typedef int INT; typedef unsigned int UINT; typedef unsigned int *PUINT;
// 组合应用 : typedef struct
#include "stdafx.h"
#define PI 11 // 宏替换
typedef int DATA; // 重命名: 类型 - int
typedef struct SNode // 重命名: 类型 - struct和struct指针
{
DATA data;
SNode *pNext;
}SNode, *pSNode;
typedef SNode* PNODE; // 重命名: 类型 - struct指针
int main(int argc, char *argv[])
{
SNode node = { PI, nullptr };
pSNode pNode = &node;
printf("%d\n", pNode->data);
PNODE pNode2 = &node;
printf("%d\n", pNode2->data);
return 0;
}
/*
// result
11
11
*/
typedef bool(*pCompare)(StuNode *pMin, StuNode *pIndex);
三 #ifdef
#ifdef _XXXX ...程序段1... // 如果定义XXXX,执行程序段1 #else ...程序段2... // 如果没定义XXXX,执行程序段2 #endif
// 用于调试
#define DEBUG
int main()
{
#ifdef DEBUG
printf("%d", _xxx);
#endif
return 0;
}
// 系统应用
// corecrt.h
#ifndef _CRT_NO_TIME_T
#ifdef _USE_32BIT_TIME_T
typedef __time32_t time_t;
#else
typedef __time64_t time_t;
#endif
#endif
// corecrt.h
typedef long __time32_t;
typedef __int64 __time64_t;
// test.cpp
#include "stdafx.h"
#include <time.h>
int main(int argc, char *argv[])
{
struct tm *ptr;
time_t it;
it = time(NULL);
ptr = gmtime(&it);
printf(ctime(&it));
printf("__time32_t size = %d\n", sizeof(__time32_t));
printf("__time64_t size = %d\n", sizeof(__time64_t));
return 0;
}
/*
Sat Sep 14 11:31:03 2019
__time32_t size = 4
__time64_t size = 8
*/
来源:https://www.cnblogs.com/huafan/p/11508396.html