簡體   English   中英

FLT_MAX宏在哪里定義?

[英]Where is the FLT_MAX macro defined?

我嘗試查看float.h頭文件,發現的全部是

#  define FLT32_MAX FLT_MAX

但是,不是嗎

#  define FLT_MAX (some number)

但是我找不到這種定義,所以我想知道FLT_MAX宏的定義在哪里?

在C語言中,宏FLT_MAX在標准頭文件<float.h>定義。

在系統上檢查名為float.h的文件,但未找到FLT_MAX的定義不會證明任何事情。 您可能正在查看錯誤的文件。 可以想象<float.h>甚至可能不是文件。

該程序:

#include <stdio.h>
#include <float.h>
int main(void) {
    printf("FLT_MAX = %g\n", FLT_MAX);
}

應該編譯並正確運行。 如果不是,則您的系統以某種方式損壞。 如果是這樣,您也許可以哄您的編譯器告訴您<float.h> 例如,如果您在類似UNIX的系統上使用gcc:

gcc -E filename.c | grep 'float\\.h' | grep 'float\\.h'

所述<float.h>報頭應該定義名為宏FLT32_MAX ,至少不會在符合模式。 這是非標准的,位於用戶名空間中,因此程序應該能夠出於自己的目的使用該名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM