본문 바로가기
반응형

Programming/C, C++54

C++ 'value' 초기화가 'case' 레이블에 의해 생략되었습니다. [C/C++] 'value' 초기화가 'case' 레이블에 의해 생략되었습니다. error C2360: 'value' 초기화가 'case' 레이블에 의해 생략되었습니다. C#에서는 중괄호가 없이 잘 작동 되는 것으로 알고있다...case 문 내에서 선언된 로컬변수 때문에 발생하는 오류이다. 할당된 영역이 실행 로직에 따라 가변적이므로 컴파일 시 스택 영역의 크기를 알 수 없기 떄문에 발생하는 오류. 해결방법 : case 문 내에서 선언 및 초기화를 할 때애는 중괄호( '{', '}') 를 사용하여 묶어주면된다. switch (choice){ case 'A': { int value; break; }} 2024. 1. 7.
C++ Error C2011 : Class, Struct, Enum 형식 재정의 [C++] Error C2011 : Class, Struct, Enum 형식 재정의 문제 원인1) 클래스, 구조체, 열거형 이름이 중복2) 헤더파일이 중복으로 추가되서 나오는 에러 다른 클래스에 같은 이름을 사용하는 것이 없는지 확인할 필요가 있다. 언리얼에서 델리게이트 작업 도중 중복된 이름이 있어서 오류를 발견했다. 1>F:\Projects\MainProject\Source\MainProject\Enemy\Components\EnemyStateComponent.h(17): error C2011: '_Script_MainProject_eventStateTypeChanged_Parms': 'struct' 형식 재정의1>F:\Projects\MainProject\Source\MainProject\Chara.. 2023. 12. 22.
C++ 유용한 문법 [C++] 유용한 문법 castingto_string()문자열로stoi()  string to intstoll()string to long longstod()string to doublestof()string to floatstob()string to boolc_str()char*로 변환atoi()char* > intstring생성string str;빈 문자열 생성 string str = "abcdef";"abcdef" 문자열 string str("abcdef");"abcdef" 문자열 string str2(str)str을 복사한 str2문자열 char s[ ] = {'a', 'b', 'c', 'd', 'e', 'f'}; string str(s);char의 문자열과 호환 string *str = new .. 2023. 9. 16.
C++ 최대 값, 최소 값 (max_element, min_element) [C++] 최대 값, 최소 값 (max_element, min_element) 배열, 벡터, 리스트의 자료 중 최대, 최솟값을 찾기 위한 함수이다. 안에 있는 데이터의 순서가 의미있는 값일 때, 정렬하는 것에 문제가 있을 때 사용한다. max_element, min_element 함수를 사용하기 위해서는 algorithm 을 include 해야 한다. #include max_element, min_element 함수의 기본 형태는 다음과 같다.max_element(start, end)를 이용하면 [start, end) 범위 중에 가장 큰 값의 iterator를 반환한다.*max_element(start, end)를 이용하면 [start, end) 범위 중에 가장 큰 값의 value를 반환한다.min_el.. 2023. 9. 15.
C++ 자주 사용되는 문법 [C++] 자주 사용되는 문법 반복문 Forfor(초기식;조건식;증감식){ // 구현내용}초기식, 조건식, 증감식은 생략 가능생략 시 구현과정에서 빠져나올 수 있도록 해야한다. whilewhile(조건식){ // 구현 내용}조건식이 참일 경우 실행한다. do ~ whiledo{ // 구현 내용} while (조건식)조건식과 관계없이 최소 한 번은 실행 후 반복 조건을 검사한다.  선택switchswitch ( 기준값 ){ case 선택값: // 이 값일 때 구현 내용 break; case 선택값: // 이 값일 때 구현 내용 break; default: // 그 외 나머지}선택값을 차례대로 보면서 기준값에 해당하는 구현내용을 실행한다.break; 명령이 없을 경우 다음 case.. 2023. 9. 15.
C++ Static 정적 클래스, 정적 멤버, static 변수, static함수 [C++] Static 정적 클래스, 정적 멤버, static 변수, static함수static 키워드는 4가지 유형으로 사용될 수 있다.함수의 정적 변수 (Static variable in functions, static 변수)정적 클래스 객체 (Static class objects, static 클래스)클래스 내부의 정적 멤버 변수 (Static member variable in class, static 멤버 변수)클래스 내부의 정적 함수 (Static methods in class, static 멤버 함수)static변수는 처음 실행할 때 딱 한 번 초기화 된다.프로그램 시작시 할당되고 종료시 해제된다.함수의 정적 변수 (Static variable in functions, static 변수)프로그.. 2022. 12. 20.
C++ 구조체와 클래스의 코드로보는 차이점 [C++] 구조체와 클래스의 코드로보는 차이점구조체 보기// 구조체 테스트#include using namespace std;struct _struct{ // struct의 기본 접근 지정자는 public double _double = 3.141592; // 8 byte // 되도록이면 큰 자료형이 위로 오도록 (바이트패딩) int _int = 3; // 4byteprivate : // 접근지정자의 사용이 가능함 int _pvInt = 6; // 4byte void PrivateAccessTest() { cout 구조체 struct의 기본 접근 지정자는 public이다.바이트 패딩의 효율성을 위해 큰 자료형을 위에 선언한다.클래스처럼 접근지정자 사용이 가능하다.protected접근지정자는 상속관계.. 2022. 12. 20.
C++ 바이트 패딩 (Byte Padding) [C/C++]바이트 패딩 (Byte Padding)바이트 패딩(Byte Padding)이란 클래스 (구조체)에 바이트를 추가해 CPU접근에 부하를 덜어주는 기법padding 의 사전적 정의 : (형체를 잡기 위해 안에 대는) 속, 충전재구조체나 클래스의 크기는 내부에 선언된 변수들의 크기로 결정된다고 생각되지만 실제 크기를 확인해 보면 대부분 내부에 선언된 변수 크기보다 더 큰 크기의 공간이 할당되어 있다. 이는 CPU접근을 용이하게 만들기 위한 것인데 32bit CPU는 한 번에 4byte를 읽을 수 있고 64bit CPU는 한 번에 8byte를 읽을 수 있다. 만약 int(4byte)자료형 사이에 char(1byte)자료형이 끼어 있다면 패딩이 없을 경우 CPU는 1byte로 인한 격차로 인해 2번의.. 2022. 12. 14.
C++ 구조체 (structure type) [C/C++] 구조체 (structure type)구조체란 사용자가 새롭게 정의할 수 있는 사용자 정의 타입이다.구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있다.구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것이다.구조체를 구성하는 변수를 구조체의 멤버(Member) 또는 멤버 변수(Member Variable)이라고 한다.구조체 안에 있는 것들 중 가장 큰 자리를 가지고 있는 타입이 기준 크기가 된다. (바이트패딩)구조체 정의 방법구식 컴파일러 버전에서는 struct 앞에 typedef를 넣어줘야 한다.typedef struct 구조체이름 구조체의새로운이름;구식 컴파일러 버전에서는 구조체 멤버변수를 선언할 때 초기화해줘야 한다.// 구버전typedef struct.. 2022. 12. 14.
C++ 파일 입출력 fstream ifstream ofstream (char배열, string) [C++] 파일 입출력 fstream ifstream ofstream (char배열, string) 띄어쓰기 포함 쓰기 방법은 한 줄 입력 받는 것이다char배열을 써도 되고 편리한 string을 사용해도 된다.#include #include 파일 입출력 헤더파일 #include 문자열 헤더파일만약 입력이나 출력만 할 경우#include 입력 (Input File Stream)#include 출력 (Output File Stream)//방법 1ofstream file;file.open(filePath, ios::out);//방법 2ofstream file(filePath, ios::out) 파일을 열지 못했을 때 예외처리// 예외처리 1if(file.fail()) cout #include #in.. 2022. 12. 14.
C++ 타입(형) 변환 (Type conversion, Type Casting) [C/C++] 타입(형) 변환 (Type conversion, Type Casting) 자료형 변환이란 char형을 int로 바꾸거나 int를 double로 바꾸는 식으로 자료형 타입을 바꾸는 것을 말한다.C언어에서 다른 타입끼리의 연산은 우선 피연산자들을 모두 같은 타입으로 만든 후에 수행된다.이처럼 하나의 타입을 다른 타입으로 바꾸는 행위를 타입 변환(type conversion)이라고 한다.타입 변환은 크게 두 가지 방식으로 나눌 수 있다.묵시적 타입 변환(자동 타입 변환, implicit type conversion)명시적 타입 변환(강제 타입 변환, explicit type conversion)묵시적 타입 변환(자동 타입 변환, implicit type conversion)컴파일러가 자동으로 실.. 2022. 12. 14.
C++ 한글 문자, 한글 문자열 출력 wchar_t [C/C++] 한글 문자, 한글 문자열 출력 wchar_t기존 char 형식은 ASCII 코드를 표현할 수 있는 문자 형식이다.ASCII코드는 128가지의 문자를 표현하므로 1byte의 크기로 다 표현 가능하다.하지만 한글을 표현하기에는 1byte크기로 부족하다. 2byte형식의 자료형이 필요한데, 그 크기를 지원하는 데이터 형식이 wchar_t이다. 기존 char 형식으로 한글 문자를 출력하게 된다면 컴파일러는 ‘ㄱ’의 시작 주소부터 2byte를 읽어 엉뚱한 문자를 출력하게 될 것이다.#include //표준 입출력 헤더int main(){ char ch = 'ㄱ'; printf("%c\n", ch); return 0;}2011년 ISO(국제 표준화 기구)에서 각 지역에 맞는 언어.. 2022. 12. 13.
반응형