2013-08-30 40 views

Trả lời

4

the __uint128_t type is a GCC extension, điều thích hợp cần làm là kiểm tra một số phiên bản GCC đã biết.

See this page để biết thông tin về các macro được sử dụng để kiểm tra phiên bản trình biên dịch GCC.

+0

Clang nhận thức được nó để hỗ trợ mã GCC, vì vậy tôi sẽ nghiêng về giải pháp Sparky của – user2913094

3

Tôi chưa xử lý __uint128_t, nhưng dựa trên việc sử dụng mẫu hiện tại, tôi sẽ mong đợi những điều sau.

#include <stdint.h> 

#ifndef UINT128MAX 
    #error "__uint128_t not defined" 
#endif 

Hope this helps

5

Bạn có thể thử những điều sau đây. Tôi không biết nó đáng tin cậy như thế nào, nhưng nó có thể là cách dễ nhất.

#ifdef __SIZEOF_INT128__ 
    // do some fancy stuff here 
#else 
    // do some fallback stuff here 
#endif 
-1

tìm cc1 bạn trong thư mục/usr/libexec/cây gcc, sau đó thẩm vấn nó:

 
$ strings /usr/libexec/gcc/x86_64-redhat-linux/4.6.3/cc1 | grep uint128_t 
__uint128_t   (or not) 
Các vấn đề liên quan