c99

    8熱度

    1回答

    執行 double result = pow(base, exponent); 任意base和exponent 可能會導致在試圖計算(溢出或複數)的recomended方式價值太大或太複雜。 例如與base=-2,exponent=.5(-2的平方根) 我應該檢查是否result==NAN或result==HUGE_VAL? 該代碼是否符合C99和跨平臺?

    2熱度

    1回答

    enum元素的名稱是易受重疊/碰撞與兩個其他枚舉元素名,變量名等... enum Fruit { apple, orange }; typedef enum Fruit Fruit; enum Color { red, orange // <-- ERROR }; typedef enum Color Color; char appl

    0熱度

    1回答

    我知道C++是由不同委員會標準化的不同語言。 我知道,從一開始就像C效率一直是C++的主要設計目標。所以,我認爲如果任何功能不會產生任何運行時間開銷&如果它是有效的,那麼它應該被添加到語言中。 C99標準有一些非常有用的&高效功能,其中之一是複合文字。我正在閱讀有關編譯器文字here。 以下是顯示覆合文字使用的程序。 #include <stdio.h> // Structure to rep

    3熱度

    1回答

    宏名爲__func__的存在是C99的一部分,它的意圖很明確,但它是在給定函數內擴展到的標準文本嗎?

    1熱度

    1回答

    我想通過fork派出一些任務,並收集有關數組中這些任務結果的一些信息。 我的想法是使用mmap在兩者之間共享數據結構,並讓子進程用活動的結果更新結構數組,但我遇到了一些問題。 #include <time.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <sys/mman.h> #include

    -4熱度

    1回答

    我試圖找到最大的元素是一個大小的數組,但是我無法從概念上理解我做錯了什麼如果任何人都可以指向正確的方向我會非常感謝! #include <stdio.h> void max(int a[], int n) { int *max ; int * ind_max; int i; *max = a[0]; * ind_max=*m

    2熱度

    1回答

    首先,讓我強調一下,這個問題在本質上是legalistic。我是而不是問實際上,下面的程序是否可以用於實際實現,我問根據對ISO-9899標準的最嚴格的法律解釋是否合法(:=不產生未定義的行爲) 1999年和2011年)。 問題是,是否允許將指針轉換爲整數,對該整數執行一些算術運算,將其返回到相同的值,然後將該整數轉換回指針。 那麼,下面的程序是否合法(就是說它不會產生未定義的行爲)? #incl

    2熱度

    1回答

    我正在編寫提供sha256實現的庫。該庫將提供給可能想要提供他們自己的sha256功能的供應商,這些功能已針對他們的平臺進行了優化。所以,這個庫的API允許客戶端將函數指針傳遞給他們的sha256代碼。 int mylib_set_sha256_impl(/* function pointers */); 從此以後,所有的算法將使用提供由圖書館提供的股票代碼SHA256在內部而不是函數指針。

    2熱度

    1回答

    我想知道編譯器/鏈接器是否會刪除已在公共頭文件中的全局變量extern'd?例如: // public.h struct func_ptrs { void (*foo)(void); void (*bar)(int); }; extern const struct func_ptrs DEFAULT_FUNCS; 和: // private.c #include

    3熱度

    1回答

    相關的,但是從有些不同,Do any compilers transfer effective type through memcpy/memmove 在C89,memcpy和memmove需要表現得好像源和目標正在使用的字符類型訪問,複製的所有位源到目的地而不考慮被複制的數據的類型。 C99更改了語義,因此如果將具有有效類型的對象複製到沒有聲明類型的存儲器(通常是從malloc或其他此類函數接收