2014-10-22 4 views
-3

C에서 변수에 대해 둘 이상의 값을 전달할 수 있습니까?C에서 변수에 대해 둘 이상의 값을 전달할 수 있습니까?

아래의 예를 따르십시오, 이것은 다소 이상한 말입니다.

int mage;//Normal variable create OK 
int mage{int hp, int mp} 

것은 지금은 C를 배우고 그리고 나는 RPG 텍스트 기반 내가 최고의 가장 아름다운 RPG의 세계에 텍스트를 기반으로 만들 기대하지 않습니다 만들고 싶어하지만 그것은 단지 학습합니다.

아무도 내 질문을 여기에서 이해하지 못하면 이력서를 작성하십시오 : 하나의 변수를 만들고이 변수에 둘 이상의 값을 전달하십시오.

+3

'구조체'와 그 기능을 살펴보십시오. – Ashalynd

답변

2

예, C는 다른 유형의 값을 함께 그룹화하는 새로운 유형을 정의 할 수있는 구조를 지원합니다. 새 구조 유형은 키워드 struct을 사용하고 이름을 제공하여 선언됩니다. 새 유형의 이름은 struct이고 그 뒤에 이름이옵니다. 예컨대

는 :

struct character 
{ 
    int hp; 
    int mp; 
}; 

struct character mage = { 42, 4711 }; 

최종 라인 형의 struct charactermage라는 변수를 생성하고, 42-mage.hp4711-mage.mp를 초기화한다. 여기

는 변수 mage 분야 hp에 액세스 할 방법은 다음과 같습니다

printf("The HP of the mage is %d\n", mage.hp); 
+0

도움을 주셔서 감사합니다. 그리고 앞으로 내 코드에서 printf와 mage의 hp에이 값들을 사용하기를 원한다면 다시 한 번 질문 해주세요. printf (mage.mp); // 예를 들면? "unwind"와 같은 구조체를 사용한다면? 그리고 또한 나는 캐릭터 사용자 정의 (이름, 클래스 등 ..)와 같은 구조체를 가지고 있기 때문에 마법사를 위해 이것을 수행하기 전에 que 예제와 같이 진행한다. 구조체 통계 {40, 100}; struct Character Mage {이름, 금 등등 ...}; –

+0

@RodolfoOlivieri 도트 표기법을 사용하여 예를 들어 마법사의 HP를 인쇄하는 방법을보다 명확하게 보여주는 코드를 추가했습니다. 나머지 의견은 새로운 질문이 약간 있습니다. C에 대한 튜토리얼 유형 정보를 더 읽어야합니다. – unwind

+0

예, 저는 C를 배우고 있습니다. 그게 바로 제가 원하는 것입니다.^~^나머지는 제 스스로 할 수 있습니다. 고맙습니다. –

1

로 정의

typedef struct { 
int hp; 
int mp; 
} mage; 

사용과 같은 :

mage m; 

액세스와 같은 :

m.hp = 2; 
m.mp = 3; 
1

여러 값을 단일 변수로 그룹화하려면 가장 쉬운 방법은 struct입니다.

값을 논리적으로 그룹화 할 수 있습니다. typedef의가 또 다시 struct를 작성하는 것을 피하기 위해 그냥 선택하고 있음을

struct SAttribute { 
    int current; 
    int maximum; 
}; 
typedef struct SAttribute Attribute; 

struct SCharacter { 
    Attribute health; 
    Attribute mana; 
}; 
typedef struct SCharacter Character; 

주 : 예에서

, 당신이 뭔가를 할 수 있습니다.

실제 프로그램에서

, 당신은 다음과 같이 사용할 수 있습니다 : 그것은 변수에 하나 개 이상의 값을 전달 할 수 잘 모르겠어요

Character mage; 
mage.health.current = mage.health.maximum = 100; 

// damage the mage 
mage.health.current -= 5; 

// is the mage dead? 
if (mage.health.current <= 0) 
    printf("The mage is dead."); 
1

을,하지만 난 당신이 만드는 것이 좋습니다 것 struct

typedef struct mage mage; 
// define a struct 
struct mage { 
    int hp; 
    int mp; 
}; 

struct mage m = {100, 50}; 

// now we can access the values 
m.hp 
m.mp 
관련 문제