«c» 태그된 질문

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



3
static int arr [10] 메모리 주소는 항상 060으로 끝납니다
이런 AC 프로그램이 있습니다 main.c #include <stdio.h> #define SOME_VAR 10 static int heap[SOME_VAR]; int main(void) { printf("%p", heap); return 0; } 컴파일 된 프로그램을 몇 번 실행할 때 이것을 출력합니다. 0x58aa7c49060 0x56555644060 0x2f8d1f8e060 0x92f58280060 0x59551c53060 0xd474ed6e060 0x767c4561060 0xf515aeda060 0xbe62367e060 왜 항상 060으로 끝나나요? 그리고 배열은 힙에 저장됩니까? 편집 : 나는 …
17 c  arrays  memory 

1
ASLR이 켜져 있는데도 __libc_start_main의 주소가 항상 GDB 내에서 동일한 이유는 무엇입니까?
Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it …
16 c  linux  gdb  libc  aslr 


1
np.dot이 왜 정확하지 않습니까? (n 차원 배열)
np.dot두 개의 'float32'2D 배열을 사용 한다고 가정 합니다. res = np.dot(a, b) # see CASE 1 print(list(res[0])) # list shows more digits [-0.90448684, -1.1708503, 0.907136, 3.5594249, 1.1374011, -1.3826287] 번호. 제외하고는 다음을 변경할 수 있습니다. 사례 1 : 슬라이스a np.random.seed(1) a = np.random.randn(9, 6).astype('float32') b = np.random.randn(6, 6).astype('float32') for i in …
15 python  c  arrays  numpy  precision 

3
비 const에 대한 포인터와 동일한 주소의 const 인수에 대한 포인터를 가진 함수 호출
데이터 배열을 입력하고 포인터를 사용하여 다른 데이터 배열을 출력하는 함수를 작성하고 싶습니다. 두 경우 나는 결과 무엇인지 궁금 src와 dst같은 주소로 지적 내가 컴파일러는 const를 위해 최적화 할 수 있습니다 알고 있기 때문에. 정의되지 않은 동작입니까? (대답이 서로 다를 수 있는지 확실하지 않기 때문에 C와 C ++ 모두에 태그를 지정했으며 …

5
C에서 효과가없는 진술이 합법적 인 것으로 간주되는 이유는 무엇입니까?
이 질문이 순진한 경우 용서하십시오. 다음 프로그램을 고려하십시오. #include <stdio.h> int main() { int i = 1; i = i + 2; 5; i; printf("i: %d\n", i); } 위의 예에서, 진술 5;과는 i;완전히 불필요한 것, 그러나 기본적으로 경고 또는 오류없이 코드 컴파일은 (단, GCC는 던져 않습니다 warning: statement with no …
13 c 

5
부울과 비트 비교
uint16_t로 인코딩 된 플래그 세트가 있다고 가정 해보십시오 flags. 예를 들면 다음과 같습니다 AMAZING_FLAG = 0x02. 이제 기능이 있습니다. 이 기능을 사용하려면 플래그를 변경해야하는지 확인해야합니다. 변경하려면 플래시에 기록해야하기 때문입니다. 그리고 그것은 비싸다. 따라서 나는 flags & AMAZING_FLAG같은지 알려주는 검사를 원합니다.doSet . 이것이 첫 번째 아이디어입니다. setAmazingFlag(bool doSet) { if ((flags …

1
C 코드에서 timespec_get ()의 초 구성 요소보다 1 초 뒤에 time ()으로 시간이보고되는 이유는 무엇입니까?
다음 코드 스 니펫 : struct timespec ts; for (int x = 0; x < 100000000; x++) { timespec_get(&ts, TIME_UTC); long cTime = (long) time(NULL); if (cTime != ts.tv_sec && ts.tv_nsec < 3000000) { printf("cTime: %ld\n", cTime); printf("ts.tv_sec: %ld\n", ts.tv_sec); printf("ts.tv_nsec: %ld\n", ts.tv_nsec); } } 이 출력을 생성합니다. ... cTime: …
12 c  time  posix  timespec 

4
이 함수가 올바른 문자열 길이를 반환하는 이유는 무엇입니까? (char 포인터 늘리기)
문자열의 문자 수를 계산하는 함수입니다. int str_len(const char* s) { int i = 0; while(*(s++)) { i++; } return i; } 이것이 올바른 길이를 반환하는 이유는 무엇입니까? 간단한 String 으로이 함수를 호출한다고 가정 해 봅시다 "a". 그런 다음 swhile 루프에서 증가하므로 s및 의 값 i은 모두 0입니다.
12 c  while-loop  strlen  c89 

1
같은 이름의 함수에 매크로를 정의해야하는 이유는 무엇입니까?
https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h 에서 아래 코드를 찾았습니다. static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) { return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i); } #define arch_atomic_sub_and_test arch_atomic_sub_and_test 무엇을 않는 #define정말로? 언제해야합니까?
12 c  linux-kernel 

3
"휘발성"은 멀티 코어 시스템을위한 휴대용 C 코드로 무엇인가를 보장합니까?
(A)에서보고 한 무리 의 다른 질문 과 그 답변 , 나는 인상 얻을 C에서 "휘발성"키워드가 정확히 무엇을 의미하는지에 대한 더 광범위한 합의가없는합니다. 표준 자체조차도 모든 사람이 그것이 의미 하는 바에 동의 할만큼 명확하지 않은 것 같습니다 . 다른 문제들 중 : 하드웨어와 컴파일러에 따라 다른 보증을 제공하는 것 같습니다. 컴파일러 …


1
GCC의 앵글 브래킷 구현에는 다음이 포함됩니다. 아래 설명 된 이유는 무엇입니까?
2.6 계산 포함 섹션 의이 문서 는 다음 단락으로 구성되어 있습니다. 행이 <토큰으로 시작하고> 토큰을 포함하는 토큰 스트림으로 확장되면 <와 첫 번째> 사이의 토큰이 결합되어 포함 할 파일 이름을 형성합니다. 토큰 사이의 공백은 단일 공백으로 줄어 듭니다. 초기 <뒤의 공백은 유지되지만 닫힘 앞의 후행 공백은 무시 됩니다. CPP는 꺾쇠 괄호 …
11 c++  c  gcc  language-lawyer 

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