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

Một bộ xử lý macro văn bản được áp dụng trước khi biên dịch các chương trình ngôn ngữ C và C ++. Thẻ này cũng có thể được sử dụng cho các câu hỏi về trình biên dịch / ngôn ngữ khác có nguồn gốc từ hoặc có các tính năng giống hệt nhau, chẳng hạn như #directives trong Objective-C hoặc C #.




10
Số dòng C / C ++
Với mục đích gỡ lỗi, tôi có thể lấy số dòng trong trình biên dịch C / C ++ không? (cách chuẩn hoặc các cách cụ thể cho các trình biên dịch nhất định) ví dụ if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber …


7
Dấu phẩy trong macro C / C ++
Giả sử chúng ta có một macro như thế này #define FOO(type,name) type name Cái mà chúng tôi có thể sử dụng như FOO(int, int_var); Nhưng không phải lúc nào cũng đơn giản như vậy: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Tất …
103 c++  c  macros  c-preprocessor 


11
Macro so với Hàm trong C
Tôi luôn thấy các ví dụ và trường hợp sử dụng macro tốt hơn sử dụng hàm. Ai đó có thể giải thích cho tôi một ví dụ về nhược điểm của macro so với một hàm không?


8
Thụt lề #defines
Tôi biết rằng #definecác s, v.v. thường không bao giờ được thụt vào. Tại sao? Tôi đang làm việc trong một số mã tại thời điểm này có một hỗn hợp khủng khiếp của #defines, #ifdefs, #elses, #endifs, v.v. Tất cả những thứ này thường được trộn lẫn với mã …



4
Pragma trong macro xác định
Có cách nào để nhúng câu lệnh pragma trong macro với các câu lệnh khác không? Tôi đang cố gắng đạt được điều gì đó như: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type …



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.