크립토좀비 1단계-5) 구조체
2022. 1. 31. 20:53ㆍBlockChain/크립토좀비
안녕하세요. brandy 입니다.
크립토좀비를 해보면서 오랜만에 '구조체'라는 단어를 보았는데요,
정답은 맞췄지만 구조체의 개념을 다시 한 번 짚고 넘어가야 할 것 같아서 해당 포스팅을 작성하게 되었습니다.
pragma solidity ^0.4.19;
contract ZombieFactory {
uint dnaDigits = 16;
uint dnaModulus = 10 ** dnaDigits;
struct Zombie {
string name;
uint dna;
}
}
좀비 몇 마리를 생성하기 위해 구조체 개념을 이용하였는데요, 구조체의 개념에 대해 다시 한번 짚고 넘어가보려고 합니다.
구조체는 주로 C/C++에서 사용되는 개념으로 구조화된 데이터를 처리할 때 사용합니다. 구조화 되어있다는 말은 의미가 연결되어 한 덩어리로 처리한다는 방식을 의미합니다.
전달 데이터를 읽기 쉽고 간편하게 만들어줍니다. 함수에 데이터를 넘길 때 해당 구조체만 넘겨주면 됩니다.
struct 구조체이름 {
자료형 멤버이름;
}
C언어를 예시로 들어보겠습니다.
# define _CRT_SECURE_NO_WARNINGS //strcpy 보안 경고로 인한 컴파일 에러 방지
#indclude <stdio.h>
#include <string.h>
struct Person {
char name[20]; // 이름을 저장할 변수 name 20자리까지 가능
int age; // 나이를 저장할 int형 age변수
char address[100]; // 주소를 저장할 char형 address변수 100자리까지 가능
}; // Person 구조체 선언 끝
int main() {
struct Person p1; // 위에서 정의한 Person을 사용하기 위한 구조체 변수 선언
// 점(.)으로 구조체 멤버에 접근하여 값 할당
strcpy(p1.name,"홍길동");
p1.age=30;
strcpy(p1.address,"서울시 용산구 한남동");
printf("이름: %s\n",p1.name); // 이름 : 홍길동
printf("나이: %d\n",p1.age); // 나이 : 30
printf("주소: %s\n",p1.address); // 주소 : 서울시 용산구 한남동
return 0;
}
구조체는 보통 main 함수 바깥에 정의합니다. 만약 함수 안에 구조체를 정의하면 해당 함수 안에서만 구조체를 사용할 수 있습니다.
정의한 구조체를 사용하려면 구조체 변수를 선언해야 합니다. 이때는 구조체 이름 앞에 반드시 struct 키워드를 붙여줘야 합니다 (위의 main 함수 내 struct Person p1;)
'BlockChain > 크립토좀비' 카테고리의 다른 글
블록체인 TIL) 크립토좀비 lesson1 complete (0) | 2022.05.27 |
---|---|
크립토좀비 1단계-6) 배열 (0) | 2022.01.31 |
크립토좀비 1단계-3) 상태변수 & 정수 (0) | 2022.01.31 |