C언어 한글로 코딩하기, 안녕 세상!

C언어 한글로 코딩하기, 안녕 세상!

Author : Jino Bae / Send Mail

수업시간에 문득 한글 변수를 사용할 수 있다는 사실을 깨달았습니다. 그러고나선 변수 이름 말고 함수들도 다 한글로 쓰면 좋을 것 같다는 생각이 들었습니다. 물론 이전에도 수 많은 한국 사람들이 시도를 했었죠.


전 당시 SlefRef나 주소값에 대해 조금씩 개념을 익혀가던 찰라였기에 단지 #define만 사용하는 것이 아니라 C#처럼 간단한 구조를 가진 한글 코딩을 구현하고 싶었습니다. 다운로드


/*----KOREAN CODING----*/
#ifndef _KOREAN_H_
#define _KOREAN_H_

#pragma once
/*---C++ Header File---*/
#include <iostream>
#include <iomani>

/*---C Header File---*/
#include <stdlib.h>
#include <time.h>

#define 진입점 main

#define 만약 if
#define 혹은 else if
#define 아니면 else
#define 반복 for
#define 반환 return

#define 형식정의 typedef
#define 구조체 struct

#define 클래스 class
#define 공개 public
#define 숨김 private
#define 보호 protected

#define 동적 new
#define 삭제 delete
#define 정적 static
#define 상수 const

#define 참 true
#define 거짓 false

typedef int 정수;
typedef float 실수;
typedef char 문자;
typedef void 공백;

class 기본입출력
{
public:
	template <typename type>
	기본입출력 출력(type a)
	{
		std::cout << a;
		return *this;
	}
	기본입출력 새행()
	{
		std::cout << std::endl;
		return *this;
	}
	template <typename type>
	void 입력(type &a)
	{
		std::cin >> a;
	}
};

class 출력옵션
{
private:
	기본입출력 &ref;
public:
	출력옵션(기본입출력 &r) : ref(r) {};
	기본입출력 진수변환(int x)
	{
		using namespace std;
		switch (x)
		{
		default:
			cout << dec;
			break;
		case 16:
			cout << hex;
			break;
		case 8:
			cout << oct;
			break;
		}
		return ref;
	}
	inline 기본입출력 자릿수(int x)
	{
		using namespace std;
		cout.precision(x);
		return ref;
	}
};

class 편의시스템
{
public:
	inline void 정지()
	{
		system("pause");
	}
	inline void 정리()
	{
		system("cls");
	}
	inline void 입력(char a[])
	{
		system(a);
	}
};

class 수학기능
{
public:
	수학기능()
	{
		srand(time(NULL));
	}
	int 랜덤범위(int a, int b)
	{
		int x = rand() % b - a;
		return x;
	}
	int 랜덤값()
	{
		int x = rand();
		return x;
	}
	template <typename type>
	inline type 제곱(type a, int b)
	{
		type temp = 1;
		for (int i = 0; i < b; i++) temp *= a;
		return temp;
	}
};

기본입출력 입출력;
출력옵션 옵션(입출력);
편의시스템 콘솔;
수학기능 수학;

#endif


Example 1: “안녕 세상!”

#include "기본한글.h"

정수 진입점(공백)
{
    입출력.출력("안녕 세상!").새행();
    반환 0;
}

KorCoding의 기본적인 Hello World 구조를 보여줍니다. C#의 Console.Writeln();과 같은 구조에 영감을 받아서 클래스의 구조는 SelfRef구조로 작성되었습니다.


Example 2: “만약? 아니면!”

#include "기본한글.h"

정수 진입점(공백)
{
    정수 가;
    입출력.입력(가);

    만약(가 == 0)
    {
        입출력.출력("'가'는 0입니다.").새행();
    }
    아니면
    {
        입출력.출력("'가'는 0이 아닙니다.").새행();
    }
    반환 0;
}

if문은 단지 #define을 이용하여 구현되어 C언어와 큰 차별점을 가지고 있지 않습니다.


Example 3: “클래스”

#include "기본한글.h"

클래스 예시
{
숨김 :
    정수 가;
    정수 나;
    정수 다;
공개 :
    예시(정수 공1, 정수 공2, 정수 공3 = 기능.랜덤값())
        : 가(공1), 나(공2), 다(공3) {};
    공백 출력(공백)
    {
        입출력.출력("예시 클래스를 출력합니다.").새행().출력(가).새행().출력(나).새행().출력(다).새행();
    }
};

정수 진입점(공백)
{
    난수;
    예시 *동적예시 = 동적 예시(기능.랜덤값(), 기능.랜덤값());
    동적예시->출력();
    반환 0;
}

위 예시는 클래스 생성과 사용에 대한 코드를 나열하고 있습니다. 진입점에서 동적예시인 예시 클래스를 만들어 가, 나에 랜덤값을 부여하고 다에는 기본적으로 랜덤값이 부여되어 결과값은 3개의 랜덤값이 연속으로 출력됩니다.



Jino Bae
WRITTEN BY

Jino Bae

Digital is a purely man-made playground. That's why I like.
[email protected]


comments powered by Disqus