Câu hỏi được gắn thẻ «c»

C là ngôn ngữ lập trình đa dụng được sử dụng cho lập trình hệ thống (HĐH và nhúng), thư viện, trò chơi và đa nền tảng. Thẻ này nên được sử dụng với các câu hỏi chung liên quan đến ngôn ngữ C, như được định nghĩa trong tiêu chuẩn ISO 9899 (phiên bản mới nhất, 9899: 2018, trừ khi có quy định khác - cũng yêu cầu phiên bản cụ thể của thẻ với c89, c99, c11, v.v.). C khác với C ++ và không nên kết hợp với thẻ C ++ mà không có lý do hợp lý.

1
Tại sao thời gian được báo cáo theo thời gian () đôi khi là 1 giây sau thành phần giây của timespec_get () trong mã C?
Đoạn mã sau: 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); } } tạo đầu ra này: ... cTime: 1579268059 …
12 c  time  posix  timespec 


1
Tại sao định nghĩa một macro cho một hàm có cùng tên?
Tôi tìm thấy mã dưới đây trong 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 những gì #definethực sự làm? Khi nào cần thiết phải làm như vậy?
12 c  linux-kernel 




3
Trả về một con trỏ void duy nhất từ ​​một hàm
Để có được một void *chức năng trong CI sẽ làm một cái gì đó như thế này (ví dụ rất cơ bản): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Làm thế nào để tôi đạt được kết quả tương tự khi sử dụng std::unique_ptr<>?
11 c++  c  unique-ptr 



1
Giá trị char được đặt thành CHAR_MAX có được bảo đảm để bao quanh CHAR_MIN không?
Mã của tôi: #include <stdio.h> #include <limits.h> int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } Đầu ra: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () Chúng ta thấy rằng khi chúng ta tăng một charbiến được đặt thành CHAR_MAX, nó sẽ bao quanh …



1
C11 Nguyên tử mua / phát hành và x86_64 thiếu tải / lưu trữ kết hợp?
Tôi đang vật lộn với Mục 5.1.2.4 của Tiêu chuẩn C11, đặc biệt là ngữ nghĩa của Phát hành / Mua lại. Tôi lưu ý rằng https://preshing.com/20120913/acquire-and-release-semantics/ (trong số những người khác) nói rằng: ... Ngữ nghĩa phát hành ngăn chặn sắp xếp lại bộ nhớ của bản phát hành …

4
Tại sao trả về NULL từ main ()?
Đôi khi tôi thấy các lập trình viên sử dụng NULLlàm giá trị trả về của main()các chương trình C và C ++, ví dụ như một cái gì đó như thế: #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } Khi tôi biên dịch mã `này với gcc, tôi …
10 c++  c  null  return  return-value 


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.