반응형 컴퓨터공학/C,C++,C#33 C에서 static 사용 C에서 static은 전혀 다른 2가지 용법으로 사용된다. 1. 지역변수에서 static 선언될 때지역변수에 static을 사용하면 변수가 저장되는 메모리가 함수 리턴시에도 사라지지 않고 유지된다. 그래서, 함수를 여러 차례 호출해도 변수 값을 유지 하고 있다. 2. 전역변수에서 static 선언될 때프로젝트가 여러 파일로 되어 있을 때 static으로 선언된 전역변수는 다른 파일에서 사용하면 컴파일 할 때 에러 메세지를 출력한다. 2017. 8. 6. C에서 가장 실수하기 쉬운 버그 C에서 가장 심각하고 흔하게 하는 실수는 배열이 Overflow되는 것이다. int a[5];int i = 5;a[i]=1; 위와 같은 코드에서 배열 a의 인덱스는 0~4인데 i에 5을 넣어 배열의 범위를 넘었다. 이때 넘어간 영역은 다른 변수의 값이 저장되어 있는 영역인데 그곳에 의도하지 않은 값이 저장되어 프로그램이 이상 동작을 한다. Visual C++에서는 실행 중 Overflow 되면 Run-time 에러 메세지를 띄우지만, 일반적인 C에서는 이러한 문제를 검출하여 메세지를 띄우지 않기 때문에 프로그래머가 직접 찾아야 하지만 이러한 버그는 찾기가 매우 어렵다. C에서 이러한 문제를 그대로 둔 이유는 프로그램 실행 속도 때문이다. 배열에 접근할 때마다 일일이 검사를 하면 프로그램 실행 속도가 매우.. 2017. 8. 6. Visual C++와 C#의 차이 Visual C++은 윈도우 API에 기반한 MFC라는 클래스를 사용하여 프로그램을 만든다. MFC는 매우 잘 만든 라이브러리지만 기반은 윈도우 API이기 때문에 사용하기가 매우 어렵다. C#은 윈도우 API를 직접 사용하지 않고 JAVA의 버추얼 머신과 비슷한 닷넷프레임을 사용한다. 윈도우와는 닷넷프레임으로 분리되어 있다. C#은 프로그램 개발이 쉽도록 만들어졌다. C#에서는 코드 한줄이면 될 동작을 Visual C++에서는 수십줄을 복잡하게 코딩해야 하는 경우가 매우 많다. 그래서, C#의 생산성이 몇 배로 높다. C++도 객체지향 언어이지만 C#은 보다 완성된 객체지향적인 프로그램을 작성할 수 있다. C#은 Visual C++보다는 Visual Basic과 비슷하다. Visual C++을 제대로 공.. 2017. 8. 1. [C#] 숫자를 16진수 문자로 변환 int i=10;i.ToString("X4"); // "000A" X4는 4자리 16진로로 표시한다.X는 대문자, x는 소문자로 16진수를 표시한다. 2017. 8. 1. [C#] textBox에 문자 추가하기 textBox에 문자열 "ABC"를 추가하며 자동으로 아래로 스크롤 된다. textBox.AppendText("ABC") textBox에 문자를 추가하지 않고 전체 문자를 설정한 후 스크롤을 가장 아래로 내리는 방법은 다음과 같다. textBox.Select(textBox.TextLength + 1, 0);textBox.SelectedText = "ABC"; 2017. 7. 31. [C#] string 에서 문자열 찾기 int string.IndexOf(string txt) string에서 txt 문자열을 찾아 위치를 반환한다. 위치는 0에서 시작한다. 문자열을 찾지 못하면 -1을 반환한다. 2017. 7. 31. C#에서 실행 중 코드 편집하기 C#에서는 다음 그림과 같이 '코드가 실행 중이거나 한 프로세서가 중단될 때 모든 프로세서 중단 옵션이 비활성화되어 있으며 변경할 수 없습니다.'가 표시되고 실행 중 코드를 편집할 수 없도록 설정되어 있다. 도구 -옵션 메뉴에서 다음 그림과 같이 '편집하며 계속하기 사용'을 비활성화 시키면 실행 중 코드를 편집할 수 있다. 2017. 7. 29. C#의 sln 파일 C#의 sln 파일 확장자는 solution의 약자이다. C#을 열때 sln 파일을 열면 된다. suo 파일은 Solution User Options의 약자이다. 2017. 7. 29. [C#] textBox에서 키보드 입력 이벤트 C#의 textBox에서 키보드 입력시 KeyDown 이벤트가 이다. private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { } } 2017. 6. 28. 이전 1 2 3 4 다음 반응형