簡體   English   中英

printf格式說明符中的索引說明

[英]Index specification in printf format specifier

在以下程序中, printf()函數根據參數索引規范進行打印。

#include <stdio.h>

int main()
{
        printf("%3$d  %4$f  %2$d  %1$d\n", 1,  2,  3,  4.5);
}

輸出:

3  4.500000  2  1

所以,我有一個問題, 它對任何編譯器有效還是僅支持GCC編譯器?

如您所懷疑, C標准不需要編號的參數轉換規范(即n$ )。 但是它們對Gnu的實現不是特質。 它們是POSIX標准此處為規范)所必需的,並且至少從1997年版本2開始。

大多數Unix和類似Unix的實現都具有某種程度的Posix遵從性,並且編號參數規范並不是最近才添加的。 因此,您很可能會在大多數當前的Unix和類似Unix的平台上找到支持,包括那些使用Gnu標准C庫(Linux)或FreeBSD標准C庫(Mac OS X)的平台。 但是,(本機)Windows C標准庫不兼容Posix,並且不包含對帶編號的參數規范的支持(至少到今天為止:請參閱此處 。)

暫無
暫無

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

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