srand 마이크로 시간대로 뽑아내기 본 글은 퍼온 글입니다. 아래 소스는 리눅스에서만 작동하니 그 점을 숙지해야 합니다. srand(time())가 1초마다 값이 바뀌다 보니 랜덤 값이 항상 일정한데 그 점을 보안하기 위한 함수 입니다. 아래 글은 퍼온 글이고 윈도우 모드에서 랜덤값을 주는 방법은 더 아래에 있습니다. 요즘 동아리에서 C 스터디를 하고 있습니다. 리눅스 프로그래밍, 윈도우즈 프로그래밍, 루트킷 탐지 프로그램 프로젝트를 하기 위한 선행학습이지요. 복습도 되구요. 우선, 로또 게임 시뮬레이션을 만들었는데, 주석을 포함하여 217줄이 나오더군요. 그 코드 중에서 번호를 무작위로 섞는 함수 부분에 대해 얘기하고자 합니다. 자, 그러면 코드부터 볼까요? /* === FUNCTION ============================.. 더보기 restrict 한정자(qualifier) in C Type Qualifiers C언어에서 C89 표준에서는 한정자가 contst, volatile 이 두가지가 있었다. C99에서는 세 번째 타임으로 restrict가 추가 되었다. 이 한정자들은 lvalue를 통해 객체를 접근할 때 컴파일러가 전제 조건을 결정한다. Const 예약어는 문법은 C++에도 이미 적용되어 있다. 이 개념은 다른 언어에도 나타나있다. volatile과 restrict는 C언어에서 발견되었다. 그리고 이 둘 다 const 와 같은 문장 구성법을 같는다. 한정자의 형(type)은 최적화를 통해 더 많은 제어적 요소를 제공하기 위해 소개 되었다. 몇몇 중요 최적화 기술들은 cacheing을 토대로 한다. 특정 상황에서 컴파일러는 그 지역으로 부터 가장 마지막에 엑세스된 값을 기억하고.. 더보기 winavr 버전에 따른 문제점 20081205 vs 20090313 #define CPU_CLOCK 14745600 #define BAUD_RATE 9600 #define BAUD_RATE_L (CPU_CLOCK / (16l * BAUD_RATE)) - 1 #define BAUD_RATE_H ((CPU_CLOCK / (16l * BAUD_RATE)) - 1) >> 8 void uart_init(void) { // baud rate 설정 UBRR1H = (unsigned char)BAUD_RATE_H; UBRR1L = (unsigned char)BAUD_RATE_L; // no parity, 1 stop bit, 8bit 설정 UCSR1C = (0 더보기 이전 1 ··· 7 8 9 10 11 12 13 ··· 23 다음