[흑마 프로그래머] C 언어 학습 노트의 typedef(15)
데이터 형식에 새 이름을 정의합니다
사용
1. 기본 데이터 유형
#include <stdio.h>
typedef int Integer; // int Integer ,int
typedef Integer Integer2; // , Integer Integer2
int main()
{
int i = 1;
Integer i2 = 2;
Integer2 i3 = 3;
printf("%d, %d, %d
", i, i2, i3); // :1, 2, 3
return 0;
}
2. 지침
#include <stdio.h>
typedef char * String; // char * String
int main()
{
String name = "hello";
printf("%s
", name); // :hello
return 0;
}
3. 구조체
//
struct PersonType {
char *name;
};
typedef struct PersonType Person;
//
typedef struct StudentType {
char *name;
} Student;
//
typedef struct{
char *name;
} Cat;
int main()
{
//
Person p = {"hello"};
printf("%s
", p.name); // :hello
//
Student stu = {"world"};
printf("%s
", stu.name); // :world
//
Cat cat = {"world"};
printf("%s
", cat.name); // :world
return 0;
}
4. 구조체를 가리키는 지침
#include <stdio.h>
struct Person {
char *name;
};
typedef struct Person * PersonPoint;
int main()
{
struct Person p = {"hello"};
PersonPoint pp = &p;
pp->name = "world";
printf("%s
", p.name);
return 0;
}
5. 열거
#include <stdio.h>
/*
//
enum SexEnum {
Man, Woman, Unknow
};
typedef enum SexEnum Sex;
//
typedef enum SexEnum {
Man, Woman, Unknow
} Sex;
*/
//
typedef enum {
Man, Woman, Unknow
} Sex;
int main()
{
Sex sex = Man;
printf("%d
", sex);
return 0;
}
6. 함수를 가리키는 바늘
#include <stdio.h>
int sum(int v1, int v2)
{
return v1 + v2;
}
typedef int (*IntFunc)(int, int);
int main()
{
IntFunc func = sum;
printf("%d
", func(3, 4));
return 0;
}
3. #define 및 typedef
다음 코드부터 볼게요.
4
#define String char *
typedef char * String2;
int main()
{
String s1 = "hello";
String2 s2 = "world";
printf("%s, %s
", s1, s2);
return 0;
}
출력:hello, 월드 이 코드는 모두가 쉽게 이해할 수 있습니다. 이제 다음 코드를 보십시오.
이때 어떤 차이가 있습니까?다음 내용을 살펴보겠습니다.
String s1, s2; String은 하나의 매크로 정의이기 때문에 사전 처리를 컴파일할 때 바로 교체되고char*s1,s2에 해당한다.좀 더 명확하게 말하면 바로char*s1이다.char s2; 이것은sizeof를 통해 증명할 수 있으며 s1만char*타입이고 s2는char타입입니다.
String2 s3, s4; typedef는 유형에 별명을 붙이기 때문에char*s3과 같습니다.char *s4; 그래서 s3, s4는 모두char*타입입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.