Modern C라고 불리는 최근의 C 표준인 C99/C11은 ANSI C라고 하는 예전의 C 언어와 다른 점이 있습니다.
C를 다 배운 후에 이 내용을 참고할 필요가 있습니다.
Modern C, Jens Gustedt 책을 찾았습니다.
프린트 본은 출판된적이 없는것 같은데, 새로운 기획으로 잘 기술되어 있는 책입니다.
인터넷 상에서 pdf는 쉽게 찾을 수 있을 겁니다.
그동안 알고 있던 C 언어에 대한 정리도 할겸 처음 부터 읽어가면서 중요한 부분을 정리하려고 합니다.
(비주얼 스튜디오는 C언어 표준을 잘 따르지 않는다. MS가 C++에 집중하기 때문이기도 하고... 그래서 C99나 C11의 추가된 속성은 지원되지 않는 것이 많다. MS의 의견: Our primary goal is to support "most of C99/C11 that is a subset of ISO C++98/C++11.We do not plan to support ISO C features that are not part of either C90 or ISO C++.)
C와 C++은 다르다. 섞어서 사용하지 말라.
Warning도 꼭 제거하라.
변수를 가능하면 사용하는 가까운 곳에서 선언하라.
추가된 자료형
bool
float complex
double complex
long double complex
변수의 초기화 방법
double a = 7.8;
double b( 2.0);
double c = { 7.8 };
double d { 0 };
배열
variable length array(C99): Visual Studio는 제공하지 않는 기능이다
#include <stdio.h>
float read_and_process(int n);
float add(float a[], int n);
float read_and_process(int n)
{
float vals[n];
for (int i = 0; i < n; i++)
vals[i] = i;
return add(vals, n);
}
float add(float a[], int n)
{
float sum=0;
for (int i = 0; i < n; i++)
sum += a[i];
return sum;
}
int main()
{
printf("%d\n", read_and_process(10) );
}
쓰레드
C 언어 자체에서 쓰레드가 제공됩니다.