728x90
아래 코드에서 에러가 발생하는 이유는?
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
int main()
{
std::cout << "Hello World!\n";
}
-> main 함수의 중복 : C++ 프로그램은 하나의 `main()` 함수만을 가질 수 있다. 여기서는 두 번 `main()` 함수를 정의하였으므로, 이것은 컴파일 오류를 발생시킨다.
#include <iostream>
void main1()
{
std::cout << "Hello World!!\n";
}
int main()
{
main1(); //함수 호출,call
std::cout << "Hello World!\n";
}
- 매개변수, 인자, 리턴값
- 함수의 입력과 출력
- 1부터 9까지 랜덤한 값을 출력하기
#include <stdio.h> // 표준 입출력 함수를 위한 헤더 파일
#include <stdlib.h> // rand(), srand() 등을 위한 헤더 파일
#include <time.h> // time() 함수를 위한 헤더 파일
int main() {
srand(time(0)); // 현재 시간을 기반으로 난수 생성기 초기화
int randomValue = rand() % 9 + 1; // rand()로 생성된 난수에 대해 modulo 연산 수행 후, 결과에 1을 더함으로써 범위가 [1,9]가 되게 함
printf("Random value: %d\n", randomValue); // 생성된 랜덤값 출력
return 0;
}
- srand(time(0)): srand() 함수는 난수 생성기의 초기값(시드 값)을 설정하는 역할을 한다. 이때 시드 값으로 현재 시간(time(0))을 사용하면 프로그램이 실행될 때마다 다른 난수들이 생성된다.
- rand() % 9 + 1: rand() 함수는 임의의 정수를 반환한다. 여기서 % 연산자는 나눗셈의 나머지를 반환하므로, rand() % n은 [0, n-1] 범위의 임의의 정수를 반환한다. 그래서 여기에 +1을 하여 [1, n] 범위로 만든다.
- 함수 명
- lower camel case (동사, 의미가 바뀌는 부분은 대문자, 나머지는 소문자)
-
upper camel case ( 동사, 첫 글자와 의미가 바뀌는 부분은 대문자, 나머지는 소문자)
- 함수 정의, 호출. 선언
- 함수 정의
- 함수 만들기
- 이름, 매개변수, 리턴형, 기능
- 함수 호출
- 함수 사용하기
- 이름, 매개변수
- 함수 선언
- 함수의 사용법
- 이름, 매개변수, 리턴형
- 컴파일러에게 함수에 대한 정보를 미리 줌
- 함수 정의
#include <iostream>
void display(void) //정의
{
std::cout << "강윤서\n";
}
int main()
{
display(); //호출, call
std::cout << "Hello world!\n";
}
- 함수 선언
- 두배해서 출력하는 함수 (숫자 출력)
#include <iostream>
void display(void); //선언, 프로토타입(prototype), 원형
void firstNum(int x); //선언
int main()
{
display(); //호출, call
std::cout << "Hello world!\n";
firstNum(10); //호출, call - 여기에선 firstNum()괄호 안에 숫자 넣어야함
}
void firstNum(int x) //정의
{
std::cout << x * 2;
}
void display(void) //정의
{
std::cout << "강윤서\n";
}
- 두배해서 리턴 하는 함수
#include <iostream>
void display(void); //선언, 프로토타입(prototype), 원형
void doubleNum(int x);
int doubleNumReturn(int x); //리턴 선언
int main()
{
display(); //호출, call
doubleNum(10);
std::cout << doubleNumReturn(20); //리턴 호출
}
void doubleNum(int x)
{
std::cout << x * 2;
}
int doubleNumReturn(int x) //리턴하기
{
return x * 2;
}
void display(void) //정의
{
std::cout << "강윤서\n";
}
- 두 수룰 받아 더해서 리턴하는 함수
#include <iostream>
void display(void); //선언, 프로토타입(prototype), 원형
void doubleNum(int x);
int doubleNumReturn(int x);
int add(int x, int y); //add함수 선언
int main()
{
display(); //호출, call
doubleNum(10);
std::cout << doubleNumReturn(20); //std::cout는 화면에 나타나도록
std::cout << add(2, 3); //add함수 호출
}
void doubleNum(int x)
{
std::cout << x * 2;
}
int doubleNumReturn(int x)
{
return x * 2;
}
int add(int x, int y) //add함수 정의
{
return x + y;
}
void display(void) //정의
{
std::cout << "강윤서\n";
}
crtl m+o : 함수 작게보기
ctrl m+l : 함수 크게보기
- 자판기 함수
#include <iostream>
void display(void); //선언, 프로토타입(prototype), 원형
void doubleNum(int x);
int doubleNumReturn(int x);
int add(int x, int y);
char vending(int x); //벤딩함수 선언
int main()
{
display(); //호출, call
doubleNum(10);
std::cout << doubleNumReturn(20);
std::cout << add(2, 3);
std::cout << vending(1); //벤딩함수 호출
}
void doubleNum(int x)
{
std::cout << x * 2;
}
int doubleNumReturn(int x)
{
return x * 2;
}
int add(int x, int y)
{
return x + y;
}
char vending(int x) //정의, A와 B를 나타내기위해 char 쓴거임
{
if (x == 1) return 'A';
else return 'B';
}
void display(void) //정의
{
std::cout << "강윤서\n";
}
- 문자열
#include <iostream>
void display(void); //선언, 프로토타입(prototype), 원형
void doubleNum(int x);
int doubleNumReturn(int x);
int add(int x, int y);
char vending(int x);
const char* vending1(int x); //vending1함수 선언
int main()
{
display(); //호출, call
doubleNum(10);
std::cout << doubleNumReturn(20);
std::cout << add(2, 3);
std::cout << vending(1);
std::cout << vending1(0); //벤딩1함수 호출
}
void doubleNum(int x)
{
std::cout << x * 2;
}
int doubleNumReturn(int x)
{
return x * 2;
}
int add(int x, int y)
{
return x + y;
}
char vending(int x)
{
if (x == 1) return 'A';
else return 'B';
}
const char* vending1(int x) //커피, 코코아는 문자열이기때문에 const char*을 사용해야함
{
if (x == 1) return "커피";
else return "코코아";
}
void display(void) //정의
{
std::cout << "강윤서\n";
}
728x90
'C++' 카테고리의 다른 글
5-2 객체지향 프로그래밍 (0) | 2023.10.12 |
---|---|
5-1 구조체 (2) | 2023.10.11 |
4-2 함수(funtion)2 (0) | 2023.09.28 |
2-1 C문법 정리 (0) | 2023.09.13 |
1-1 C++개요 (0) | 2023.09.13 |