목차 printf_s 개요 📌 함수 원형 int __cdecl printf_s(const char *format [, argument]...); 💡 __cdecl ? C 및 C++ 프로그램의 기본 호출 규칙으로 함수 호출용으로 스택에 쌓은 파라미터를 호출한 함수에서 제거해 주는 Convention(협약) 이다. cdecl은 C DECLaration라는 뜻으로 declaration은 선언이라는 뜻으로 직역하면 C 선언이라는 뜻이 된다. 🎯 필수 해더 🎯 매개 변수 format 서식을 지정한다. argument 선택적 인수 🎯 반환값 출력된 문자 수 또는 오류가 발생시 음수 값을 반환한다. 🎯 설명 printf_s 함수는 문자와 값의 서식을 지정하여 표준 출력 스트림 stdout에 출력한다. printf 와..
[C언어/C++] #pragma once 사용 목적 #paragma once는 C/C++에서 헤더 파일의 중복 포함을 방지하는 데 사용하는 전처리문이다. 헤더가 중복으로 포함되었을 경우 C 프로그램이 Linking 작업 중 오류를 일으키기 때문에 중복 되는 경우 전처리 과정에서 중복을 제거하는 기능이다. 💡 #pragma once는 C++프로젝트에서 헤더 파일을 만들 때 #pragma once를 사용하는 것은 일반적으로 좋은 습관으로 권장된다. 하지만 환경에 따라 특정 제한 사항이나 이슈가 있을 수 있으므로 다른 방법도 고려할 필요가 있다.
윈도우 상태, 크기, 위치 저장하기 목차 ConfigurableWindowSettings.cs 클래스 작성 isFirstRun : 프로그램 처음 실행 여부 windowLocation : 윈도우 창 시작 위치 windowSize : 윈도우 크기 windowState : 윈도우 상태(최대, 최소, 사용자 정의 등) ConfigurableWindow.cs 클래스 작성 MainWindow 수정 위 클래스를 사용하기 위해 MainWindow.xaml에 Win 태그를 달아준다. 세팅 속성 (Settings.settings) 이용을 위해 네임스페이스.Properties를 using에 추가한다. 그리고 MainWindow를 ConfigurableWindow 클래스로부터 상속 받는다. 그런후 아래 코드를 MainWind..
생성자와 소멸자 (Constructor and Destructor) 목차 생성자 (Constructor) 📌 생성자는 객체를 생성할 때 호출되는 메소드이며, 소멸자는 객체를 소멸시킬 때 호출되는 메소드라고 할 수 있다. 생성자의 선언 형식은 아래와 같다. 생성자의 일반적인 선언형식 : class 클래스명 { [접근제한자] 클래스명(매개변수..) { // } ... } 생성자의 이름은 클래스의 이름과 똑같다. 그리고 이 생성자의 메소드와 같이 매개변수를 가질 수 있으며, 메소드와는 달리 특정 값을 반환할 수 는 없고, 반환형도 가지고 있지 않다. 생성자는 객체 생성시 호출되는 메소드이며, 따로 생성자를 구현해주지 않아도 컴파일러에서 생성자를 직접 만들어 준다. 즉 자동으로 기본 생성자(default con..
클래스(Class), 접근 제한자(Access Modifier), this 목차 클래스 (Class) 클래스는 아래와 같이 선언할 수 있다. [접근 제한자] class 클래스명 { // 필드, 메소드 ... } 위의 예제에서 보이는 접근 제한자는 해당 클래스로의 접근을 제한하고자 할 때 넣는 공간이다. 클래스 내에서 필드, 메소드가 있는데 상태를 필드(field)로 나타내고, 행동을 메소드(method)로 가진다고 볼 수 있다. 아래는 개를 추상화 하여 클래스로 선언한 예제이다. 여기서 추상화란, 불필요한 부분은 없애버리고 중요한 부분에만 중점을 두어 간략화 시킨 것을 뜻한다. 🔔 예제) using System; using System.Collections.Generic; using System.Linq..
배열(Array) 목차 배열(Array) 배열이란, 동일한 타입의 변수를 모아놓은 데이터 집합이라고 할 수 있다. 아래는 배열의 선언 방법이다. 자료형[] 배열명 = new 자료형[크기] 크기 6을 가진 int 형식의 배열 student를 선언하려면 아래와 같이 선언하면 된다. int[] stucdent = new int[6]; student[0] = 4; student[1] = 9; student[2] = 1; ... 위와 같이 선언하면 아래와 같이 6개의 공간을 가진 int형 배열 구조를 형성한다. 🔔 예제) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading..
foreach, Method 목차 foreach(순회하며 차례대로 접근) 📌 C#에서는 C와 동일하게 while, do~while, for 등의 반복문을 사용 할 수 있으며, foreach도 추가로 사용할 수 있다. 🔔 예제) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { int[] arr = { 1, 2, 5, 7, 4, 9, 8, 10, 4, 7, 11}; foreach (int i in arr) Console.W..
연산자(Operators) 목차 연산자(Operators) 📌 C# 에서는 산술 연산자, 증감 연산자, 조건 연산자, 관계 연산자, 논리 연산자 등 여러 가지의 연산자를 제공한다. 분류 연산자 예 수식 연산자 +, -, *, /, % a = b + c 증감 연산자 ++, -- a++; 할당 연산자 =, +=, -=, *=, /=, %= a += b + c; 논리 연산자 &&, ||, ! a && b 관계 연산자 , ==, !=, >=, b 비트 연산자 &, |, ^ a ^ b 시프트 연산자 >>, 2 수식 연산자(+, -, *, /, %) 📌 수식 연산자에는 덧셈, 뺄셈, 곱셈 나눈셈 그리고 나눗셈을 한 뒤의 나머지를 구하는 연산자들이 있다. 분류 기능 예 + 양쪽 피연산자를 서로 더함 a + b - 왼..