«c» 태그된 질문

C는 시스템 프로그래밍 (OS 및 임베디드), 라이브러리, 게임 및 크로스 플랫폼에 사용되는 범용 프로그래밍 언어입니다. 이 태그는 달리 지정하지 않는 한 ISO 9899 표준 (최신 버전, 9899 : 2018, C89, c99, c11 등으로 버전 별 요청에 태그 지정)에 정의 된대로 C 언어와 관련된 일반적인 질문과 함께 사용해야합니다. C는 C ++과 구별되며 합리적인 이유없이 C ++ 태그와 결합해서는 안됩니다.

7
C에 "디자인 패턴"이 있습니까? [닫은]
현재이 질문은 Q & A 형식에 적합하지 않습니다. 사실, 참고 문헌 또는 전문 지식이 답변을 뒷받침 할 것으로 기대하지만이 질문은 토론, 논쟁, 여론 조사 또는 확장 된 토론을 유도 할 가능성이 높습니다. 이 질문이 개선되고 다시 열릴 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으세요. 휴일 팔년 전에 …

7
Linux 커널의 container_of 매크로 이해
Linux 커널을 탐색 할 때 container_of다음과 같이 정의 된 매크로를 찾았습니다 . #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) container_of가 무엇을하는지 이해하지만 이해하지 못하는 것은 마지막 문장입니다. (type *)( (char *)__mptr - offsetof(type,member) );}) 다음과 …


8
C의 구조체 및 포인터에 대한 malloc
벡터의 길이와 그 값을 나타내는 구조를 다음과 같이 정의한다고 가정합니다. struct Vector{ double* x; int n; }; 이제 벡터 y를 정의하고 여기에 메모리를 할당한다고 가정합니다. struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector)); 인터넷을 통한 검색 결과 x에 대한 메모리를 별도로 할당해야한다는 것을 알 수 있습니다. y->x = (double*)malloc(10*sizeof(double)); 하지만 y-> …

3
CUDA 고정 메모리가 그렇게 빠른 이유는 무엇입니까?
CUDA 데이터 전송을 위해 고정 된 메모리를 사용할 때 데이터 전송 속도가 상당히 빨라집니다. Linux에서이를 달성하기위한 기본 시스템 호출은 mlock입니다. mlock의 man 페이지에서 페이지를 잠그면 교체되는 것을 방지한다고 명시되어 있습니다. mlock ()은 addr에서 시작하여 len 바이트 동안 계속되는 주소 범위의 페이지를 잠급니다. 호출이 성공적으로 반환되면 지정된 주소 범위의 일부를 포함하는 …
84 c++  c  linux  cuda 

10
왜 strcpy 대신 strncpy를 사용해야합니까?
편집 : 예제에 대한 소스를 추가했습니다. 내가 건너 온 이 예 : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'\n", destination); return_string = strcpy(destination, …

9
빈 문자를 어떻게 표현합니까?
현재 작은 프로그램을 작성하고 있지만 컴파일 할 때이 오류가 계속 발생합니다. 오류 : 빈 문자 상수 유효한 문자를 빈 공간으로 바꾸려고 c[i]=''했지만 다른 방법으로 표현할 수 없었기 때문이라는 것을 알고 있습니다.
84 c 

11
할당 된 메모리에서 free ()를 사용하지 * 않아도 * 괜찮습니까?
저는 컴퓨터 공학을 공부하고 있고 전자 과정도 있습니다. 나는 사용하지 않도록하는 것이 가능하다는 것을 (이 과정의) 교수님의 두에서 듣고 free()(후 기능 malloc(), calloc()등)을 다시 사용하지 않을 가능성이 할당 된 메모리 공간이 다른 메모리를 할당 할 수 있기 때문이다. 즉, 예를 들어 4 바이트를 할당 한 다음 해제하면 다시 할당되지 않을 …



15
C에 대한 권장 gcc 경고 옵션 [닫힘]
닫힘 . 이 질문은 의견 기반 입니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . 이 질문 개선 -Wall 이외에 사람들이 유용하다고 생각한 다른 경고는 무엇입니까? http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html
83 c  gcc  compiler-errors 

5
"pragma"라는 단어는 어디에서 왔습니까?
그래서 나는 pragma가 무엇인지, 그것이 무엇을 위해 사용되는지 알고 있습니다. 그러나 단어 자체의 의미는 무엇입니까? 코드에서 여러 번 사용했지만 그 단어가 실제로 의미하는 바가 무엇인지 전혀 알지 못했습니다.
83 c++  c  terminology  pragma 

9
C ++에서 C로 이동
몇 년 동안 C ++로 코딩 한 후 최근 임베디드 분야에서 C로 코딩하는 작업을 제안 받았습니다. 임베디드 필드에서 C ++를 무시하는 것이 옳은지 그른지에 대한 질문을 제쳐두고 C ++에는 몇 가지 기능 / 관용구가 있습니다. 몇가지 말하자면: 일반 형식이 안전한 데이터 구조 (템플릿 사용). RAII. 특히 여러 리턴 포인트가있는 함수에서, …
83 c++  c 

1
C 코드 루프 성능 [계속]
이 질문은 Mystical의 조언에 따라 여기 내 질문에 계속됩니다. C 코드 루프 성능 내 질문에 계속해서 스칼라 명령어 대신 포장 명령어를 사용하면 내장 함수를 사용하는 코드가 매우 유사하게 보입니다. for(int i=0; i<size; i+=16) { y1 = _mm_load_ps(output[i]); … y4 = _mm_load_ps(output[i+12]); for(k=0; k<ksize; k++){ for(l=0; l<ksize; l++){ w = _mm_set_ps1(weight[i+k+l]); …

9
x << 1 또는 x << 10 중 어느 것이 더 빠릅니까?
나는 아무것도 최적화하고 싶지 않습니다. 맹세합니다. 호기심에서이 질문을하고 싶습니다. 나는 대부분의 하드웨어에서 비트 변화 (예를 들면의 어셈블리 명령어가 있다는 것을 알고 shl, shr하나의 명령이다). 그러나 얼마나 많은 비트를 이동하는지가 중요합니까 (나노초 단위 또는 CPU 전술 단위). 즉, 다음 중 하나가 CPU에서 더 빠릅니까? x &lt;&lt; 1; 과 x &lt;&lt; 10; …
83 c++  c  performance  cpu  low-level 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.