和胃是什么意思| 处女座女和什么星座最配| 子宫和宫颈有什么区别| 为什么会有阴道炎| 牡丹什么意思| 四维什么时候做| 卧底归来大结局是什么| 泡奶粉用什么水最好| 人参归脾丸和归脾丸有什么区别| 腿肿是什么原因引起的怎么办| PT医学上是什么意思| 水乳是什么| 一什么港湾| 脚水肿是什么原因引起的| 贫血的人适合喝什么茶| 干眼症滴什么眼药水好| 小基数是什么意思| 什么什么二什么成语| 三个马念什么| 农历八月是什么月| 疲软是什么意思| 因果业力是什么意思| 美女如云什么意思| 拔罐有什么作用和功效| 上海玉佛寺求什么最灵验| 孔雀蓝是什么颜色| 大脑镰钙化灶是什么意思| 雅诗兰黛是什么档次| 4月28日是什么日子| 不care是什么意思| 关口是什么意思| 什么鸟好养| aqi是什么意思| 白无常叫什么名字| 有什么神话故事| 牛黄是什么| hcg低是什么原因| im什么意思| 手指甲有黑色条纹是什么原因| 肝脑涂地是什么意思| 脑供血不足挂什么科| 炉果是什么| 蓝色妖姬代表什么含义| 什么是焦虑| 线束是什么意思| 后背疼是什么原因引起的女性| 来姨妈能吃什么水果| 对偶是什么| 泌乳素偏高是什么原因| aone是什么牌子| 三四月份是什么星座| 为什么润月| 砼为什么念hun| 什么水果含铁量最高| 前凸后翘什么意思| 智齿什么时候长| 什么药治痔疮最快| 急性肠胃炎吃什么消炎药| 痔疮长什么样子| 托班是什么意思| 宫颈lsil是什么意思| 175是什么码| 天天流鼻血是什么原因| 兔死狐悲指什么生肖| 痱子粉和爽身粉有什么区别| 浜是什么意思| 玻璃是什么垃圾| 榴莲什么季节成熟| 中央电视台台长是什么级别| 家是什么生肖| 醋酸菌是什么菌| 胎儿什么时候入盆| 过敏看什么科| 男生适合什么职业| 汤伤用什么药| 脚气挂什么科室| 天运子什么修为| 拉肚子发热是什么情况| 什么茶减肥效果最好| 三个降号是什么调| 吃什么能降尿酸| 什么天什么什么| 血压高会引起什么症状| 唐氏综合征是什么| 游龙斑是什么鱼| olayks是什么牌子| 蔬菜有什么| 肚子胀打嗝是什么原因| 口诀是什么意思| 鳡鱼是什么鱼| 雪碧喝多了有什么危害| 风热证是什么意思| 女人肾虚吃什么补回来| mmhg是什么单位| 四月23日是什么星座| 七星瓢虫吃什么| 插画师是做什么的| 家庭油炸用什么油好| 一会硬一会软什么情况| 车加昆念什么| 孕妇缺钙吃什么食物补充最快| 小狗是什么意思| 半夜三更是什么生肖| 白带发黄有异味是什么原因| 皮肤细菌感染用什么药| 需要是什么意思| 冠字五行属什么| 调和营卫是什么意思| 头发是什么组织| 裸官是什么意思| 肺不好的人吃什么好| 印度以什么人种为主| 身体虚弱打什么营养针| 什么药可以缩阴紧致| 什么是超声波| 阴虚体质是什么症状| 婴儿感冒吃什么药| 吃青椒有什么好处| 九月八号是什么星座| 什么火锅最好吃| 蛇五行属什么| 放任是什么意思| ana谱是查什么病的| 什么鱼吃泥鳅| 红细胞压积偏高是什么原因| 孕妇喝什么牛奶对胎儿好| 产检请假属于什么假| 射手座跟什么星座最配| 2010年属虎的是什么命| 梦见孩子拉粑粑是什么意思| 瞳孔放大意味着什么| 大雄宝殿供奉的是什么佛| 菠萝蜜吃多了有什么坏处| 灰白组织是什么意思| 博爱是什么意思| 造影是什么手术| 维纳斯是什么意思| 什么是好朋友| 精神萎靡是什么意思| 胃病看什么科室| 庚字五行属什么| 爱因斯坦是什么星座| 手足口一般擦什么药膏| 捡和拣有什么区别| 清宫和刮宫有什么区别| 嘱托是什么意思| 头晕去医院看什么科| 阴阳两虚吃什么食物| 1985年出生是什么命| 笑对人生是什么意思| 渗析是什么意思| 家里消毒杀菌用什么好| 妥瑞氏症是什么病| 气罐和火罐有什么区别| 人体七大营养素是什么| 8月1日是什么节日| 高压高低压正常是什么原因| 七月上旬是什么时候| 牡丹象征着什么意义| 舌苔白腻是什么原因| 曩是什么意思| 手指头红是什么原因| 喝茶喝多了有什么坏处| 肝肿瘤不能吃什么| 麻婆豆腐是什么菜系| 糖耐量异常是什么意思| 胃痉挛是什么症状| 桉字五行属什么| 90年是什么年| 寿者相什么意思| 优生优育检查什么项目| 马弁是什么意思| 重阳节送老人什么礼物| 为什么子宫会下垂| 爱情是什么样子的| 才思敏捷是什么意思| 豆绿色配什么颜色好看| 开塞露属于什么剂型| 蟑螂屎长什么样| 石斛念什么| 公主和郡主有什么区别| 什么叫cd| Mary英文名什么意思| 眼睛充血是什么原因造成的| 什么减肥最快不反弹| 身上有红色的小红点是什么原因| 迄今为止什么意思| bebe是什么意思| 马齿苋别名叫什么| acu是什么意思| 肺气肿是什么症状| 什么菜可以隔夜吃| 浅是什么意思| 忽必烈和成吉思汗是什么关系| 后嗣是什么意思| 汉子婊什么意思| 黄芪泡水有什么好处| p53野生型是什么意思| 脚底麻是什么原因| 人潮涌动是什么意思| 平均血红蛋白浓度偏低是什么意思| 什么是体制内| 酱油是什么做的| 发烧吃什么食物比较好| 花枝招展是什么意思| 接触性皮炎用什么药膏| 老人吃饭老是噎着是什么原因| 医学上cr是什么意思| 臭虫怕什么| 幽门螺杆菌是什么病| 土方是什么| 等闲识得东风面什么意思| 长绒棉和全棉什么区别| 也字五行属什么| 心脏搭桥和支架有什么区别| 蔓越莓有什么功效和作用| 青城之恋是什么生肖| 邓绥和阴丽华什么关系| 弯脚杆是什么意思| 医保卡是什么| 花生什么时候成熟| 知了是什么动物| 阴囊潮湿挂什么科| 满五唯一的房子要交什么税| 陌上是什么意思| 眼睛干痒用什么眼药水比较好| 梅花开在什么季节| 查验是什么意思| 暴龙眼镜什么档次| 夕阳无限好是什么意思| 北京立冬吃什么| 小圆细胞阳性什么意思| 美帝是什么意思| 盗墓笔记讲的是什么故事| 肾阴虚火旺有什么症状| 拾人牙慧的意思是什么| 吃什么食物对头发好| 草莓印是什么| 内裤发霉是什么原因| 喝什么汤下奶最快最多| 白羊歌词是什么意思| 白砂糖和冰糖有什么区别| 接盘是什么意思| 虫见读什么| 刮目相看是什么意思| 4.19是什么星座| 查怀孕做什么检查| 贫血的人吃什么水果| 梦见自己怀孕是什么意思| 花胶适合什么人吃| 夏天为什么会感冒| 爆粗口是什么意思| 春天有什么花| 素饺子什么馅儿的好吃| 怕是什么生肖| 佛手柑是什么| bv什么意思| 吃小龙虾不能和什么一起吃| 嘴唇一圈发黑是什么原因造成的| 喝枸杞子泡水有什么好处和坏处| 夜郎自大是什么意思| 胎盘后壁是什么意思| 螯合是什么意思| 什么药止血效果最快| 百度

第98届全国糖酒会在成都落幕 海内外4097家企业参展

百度 3月22日,孙洁(化名)对澎湃新闻表示,她们六名研修生当天在工厂接受了当地警察署永谷浩警官等人的听证问询,并从警方处得知,根据被取走的摄像头中的视频,有两名女生被拍到了裸体画面。

C99 (C9X during its development, formally ISO/IEC 9899:1999) is a past version of the C programming language open standard.[1] It extends the previous version (C90) with new features for the language and the standard library, and helps implementations make better use of available computer hardware, such as IEEE 754-1985 floating-point arithmetic, and compiler technology.[2] The C11 version of the C programming language standard, published in 2011, updates C99.

Cover of the C99 standards document

History

edit

After ANSI produced the official standard for the C programming language in 1989, which became an international standard in 1990, the C language specification remained relatively static for some time, while C++ continued to evolve, largely during its own standardization effort. Normative Amendment 1 created a new standard for C in 1995, but only to correct some details of the 1989 standard and to add more extensive support for international character sets. The standard underwent further revision in the late 1990s, leading to the publication of ISO/IEC 9899:1999 in 1999, which was adopted as an ANSI standard in May 2000. The language defined by that version of the standard is commonly referred to as "C99". The international C standard is maintained by the working group ISO/IEC JTC1/SC22/WG14.

Design

edit
?

C99 is, for the most part, backward compatible with C89, but it is stricter in some ways.[3]

In particular, a declaration that lacks a type specifier no longer has int implicitly assumed. The C standards committee decided that it was of more value for compilers to diagnose inadvertent omission of the type specifier than to silently process legacy code that relied on implicit int. In practice, compilers are likely to display a warning, then assume int and continue translating the program.

C99 introduced several new features, many of which had already been implemented as extensions in several compilers:[4]

  • inline functions
  • intermingled declarations and code: variable declaration is no longer restricted to file scope or the start of a compound statement (block)
  • several new data types, including long long int, optional extended integer types, an explicit Boolean data type (_Bool), and complex types (_Complex type specifier) to represent complex numbers
  • variable-length arrays (although subsequently relegated in C11 to a conditional feature that implementations are not required to support)
  • flexible array members
  • support for one-line comments beginning with //, as in BCPL, C++ and Java
  • new library functions, such as snprintf
  • new headers, such as <stdbool.h>, <complex.h>, <tgmath.h>, and <inttypes.h>
  • type-generic math (macro) functions, in <tgmath.h>, which select a math library function based upon float, double, or long double arguments, etc.
  • optional support for IEEE 754-1985 floating point
  • designated initializers. For example, initializing a structure by field names: struct Point p = { .x = 1, .y = 2 };[5]
  • compound literals. For instance, it is possible to construct structures in function calls: function((struct x) {1, 2})[6]
  • support for variadic macros (macros with a variable number of arguments)
  • restrict qualification allows more aggressive code optimization, removing compile-time array access advantages previously held by FORTRAN over ANSI C[7]
  • universal character names, which allows user variables to contain other characters than the standard character set: four-digit \u0040 or eight-digit hexadecimal sequences \U0001f431
  • keyword static in array indices in parameter declarations[8]

Parts of the C99 standard are included in the current version of the C++ standard, including integer types, headers, and library functions. Variable-length arrays are not among these included parts because C++'s Standard Template Library already includes similar functionality.

IEEE?754 floating-point support

edit

A major feature of C99 is its numerics support, and in particular its support for access to the features of IEEE?754-1985 (also known as IEC?60559) floating-point hardware present in the vast majority of modern processors (defined in "Annex F IEC 60559 floating-point arithmetic"). Platforms without IEEE?754 hardware can also implement it in software.[2]

On platforms with IEEE?754 floating point:

  • float is defined as IEEE?754 single precision, double is defined as double precision, and long double is defined as IEEE?754 extended precision (e.g., Intel 80-bit double extended precision on x86 or x86-64 platforms), or some form of quad precision where available; otherwise, it is double precision.
  • The four arithmetic operations and square root are correctly rounded as defined by IEEE?754.
    FLT_EVAL_METHOD float double long double
    0 float double long double
    1 double double long double
    2 long double long double long double
  • Expression evaluation is defined to be performed in one of three well-defined methods, indicating whether floating-point variables are first promoted to a more precise format in expressions: FLT_EVAL_METHOD == 2 indicates that all internal intermediate computations are performed by default at high precision (long double) where available (e.g., 80?bit double extended), FLT_EVAL_METHOD == 1 performs all internal intermediate expressions in double precision (unless an operand is long double), while FLT_EVAL_METHOD == 0 specifies each operation is evaluated only at the precision of the widest operand of each operator. The intermediate result type for operands of a given precision are summarized in the adjacent table.

FLT_EVAL_METHOD == 2 tends to limit the risk of rounding errors affecting numerically unstable expressions (see IEEE?754 design rationale) and is the designed default method for x87 hardware, but yields unintuitive behavior for the unwary user;[9] FLT_EVAL_METHOD == 1 was the default evaluation method originally used in K&R?C, which promoted all floats to double in expressions; and FLT_EVAL_METHOD == 0 is also commonly used and specifies a strict "evaluate to type" of the operands. (For gcc, FLT_EVAL_METHOD?==?2 is the default on 32?bit x86, and FLT_EVAL_METHOD?==?0 is the default on 64?bit x86-64, but FLT_EVAL_METHOD?==?2 can be specified on x86-64 with option -mfpmath=387.) Before C99, compilers could round intermediate results inconsistently, especially when using x87 floating-point hardware, leading to compiler-specific behaviour;[10] such inconsistencies are not permitted in compilers conforming to C99 (annex F).

Example

edit

The following annotated example C99 code for computing a continued fraction function demonstrates the main features:

#include <assert.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
#include <stdbool.h>
#include <tgmath.h>

double compute_fn(double z) {  // [1] 
    #pragma STDC FENV_ACCESS ON  // [2]

    assert(FLT_EVAL_METHOD == 2);  // [3]

    if (isnan(z)) {  // [4]
        puts("z is not a number");
    }

    if (isinf(z)) {
        puts("z is infinite");
    }

    long double r = 7.0 - 3.0 / (z - 2.0 - 1.0 / (z - 7.0 + 10.0 / (z - 2.0 - 2.0 / (z - 3.0)))); // [5, 6]

    feclearexcept(FE_DIVBYZERO);  // [7]

    bool raised = fetestexcept(FE_OVERFLOW);  // [8]

    if (raised) {
        puts("Unanticipated overflow.");
    }

    return r;
}

int main(void) {
    #ifndef __STDC_IEC_559__
    puts("Warning: __STDC_IEC_559__ not defined. IEEE 754 floating point not fully supported."); // [9]
    #endif

    #pragma STDC FENV_ACCESS ON

    #ifdef TEST_NUMERIC_STABILITY_UP
    fesetround(FE_UPWARD);                   // [10]
    #elif TEST_NUMERIC_STABILITY_DOWN
    fesetround(FE_DOWNWARD);
    #endif

    printf("%.7g\n", compute_fn(3.0));
    printf("%.7g\n", compute_fn(NAN));

    return 0;
}

Footnotes:

  1. Compile with: gcc -std=c99 -mfpmath=387 -o test_c99_fp test_c99_fp.c -lm
  2. As the IEEE?754 status flags are manipulated in this function, this #pragma is needed to avoid the compiler incorrectly rearranging such tests when optimising. (Pragmas are usually implementation-defined, but those prefixed with STDC are defined in the C standard.)
  3. C99 defines a limited number of expression evaluation methods: the current compilation mode can be checked to ensure it meets the assumptions the code was written under.
  4. The special values such as NaN and positive or negative infinity can be tested and set.
  5. long double is defined as IEEE 754 double extended or quad precision if available. Using higher precision than required for intermediate computations can minimize round-off error[11] (the typedef double_t can be used for code that is portable under all FLT_EVAL_METHODs).
  6. The main function to be evaluated. Although it appears that some arguments to this continued fraction, e.g., 3.0, would lead to a divide-by-zero error, in fact the function is well-defined at 3.0 and division by 0 will simply return a +infinity that will then correctly lead to a finite result: IEEE 754 is defined not to trap on such exceptions by default and is designed so that they can very often be ignored, as in this case. (If FLT_EVAL_METHOD is defined as 2 then all internal computations including constants will be performed in long double precision; if FLT_EVAL_METHOD is defined as 0 then additional care is need to ensure this, including possibly additional casts and explicit specification of constants as long double.)
  7. As the raised divide-by-zero flag is not an error in this case, it can simply be dismissed to clear the flag for use by later code.
  8. In some cases, other exceptions may be regarded as an error, such as overflow (although it can in fact be shown that this cannot occur in this case).
  9. __STDC_IEC_559__ is to be defined only if "Annex F IEC 60559 floating-point arithmetic" is fully implemented by the compiler and the C library (users should be aware that this macro is sometimes defined while it should not be).
  10. The default rounding mode is round to nearest (with the even rounding rule in the halfway cases) for IEEE 754, but explicitly setting the rounding mode toward + and - infinity (by defining TEST_NUMERIC_STABILITY_UP etc. in this example, when debugging) can be used to diagnose numerical instability.[12] This method can be used even if compute_fn() is part of a separately compiled binary library. But depending on the function, numerical instabilities cannot always be detected.

Version detection

edit

A standard macro __STDC_VERSION__ is defined with value 199901L to indicate that C99 support is available. As with the __STDC__ macro for C90, __STDC_VERSION__ can be used to write code that will compile differently for C90 and C99 compilers, as in this example that ensures that inline is available in either case (by replacing it with static in C90 to avoid linker errors).

#if __STDC_VERSION__ >= 199901L
  /* "inline" is a keyword */
#else
# define inline static
#endif

Implementations

edit

Most C compilers provide support for at least some of the features introduced in C99.

Historically, Microsoft has been slow to implement new C features in their Visual C++ tools, instead focusing mainly on supporting developments in the C++ standards.[13] However, with the introduction of Visual C++ 2013 Microsoft implemented a limited subset of C99, which was expanded in Visual C++ 2015.[14]

Future work

edit

Since ratification of the 1999 C standard, the standards working group prepared technical reports specifying improved support for embedded processing, additional character data types (Unicode support), and library functions with improved bounds checking. Work continues on technical reports addressing decimal floating point, additional mathematical special functions, and additional dynamic memory allocation functions. The C and C++ standards committees have been collaborating on specifications for threaded programming.

The next revision of the C standard, C11, was ratified in 2011.[41] The C standards committee adopted guidelines that limited the adoption of new features that have not been tested by existing implementations. Much effort went into developing a memory model, in order to clarify sequence points and to support threaded programming.

See also

edit

References

edit
  1. ^ "ISO/IEC 9899:1999 - Programming languages - C". Iso.org. 8 December 2011. Retrieved 8 April 2014.
  2. ^ a b "IEEE 754 Support in C99" (PDF). IEEE. Archived from the original (PDF) on 28 October 2017. Retrieved 15 July 2021.
  3. ^ "Standards - Using the GNU Compiler Collection (GCC)". Gcc.gnu.org. Retrieved 8 April 2014.
  4. ^ "C Dialect Options - Using the GNU Compiler Collection (GCC)". Gcc.gnu.org. 6 May 2009. Retrieved 8 April 2014.
  5. ^ "Using the GNU Compiler Collection (GCC): Designated Initializers". gnu.org. Retrieved 18 September 2019.
  6. ^ "Using the GNU Compiler Collection (GCC): Compound Literals". gnu.org. Retrieved 31 January 2016.
  7. ^ Ulrich Drepper (23 October 2007). "What every programmer should know about memory". LWN.net. Retrieved 3 April 2015.
  8. ^ ISO/IEC 9899:1999 specification, TC3 (PDF). p. 119, § 6.7.5.3 Function declarators (including prototypes) para. 7.
  9. ^ Doug Priest (1997). "Differences Among IEEE 754 Implementations".
  10. ^ Jack Woehr (1 November 1997). "A conversation with William Kahan".
  11. ^ William Kahan (11 June 1996). "The Baleful Effect of Computer Benchmarks upon Applied Mathematics, Physics and Chemistry" (PDF).
  12. ^ William Kahan (11 January 2006). "How Futile are Mindless Assessments of Roundoff in Floating-Point Computation?" (PDF).
  13. ^ Peter Bright (29 June 2013). "C99 acknowledged at last as Microsoft lays out its path to C++14". Ars Technica. Retrieved 9 January 2015.
  14. ^ a b c Brenner, Pat. "What's New for Visual C++ in Visual Studio 2015". Microsoft Developer Network. Retrieved 27 April 2015.
  15. ^ "Using the x86 Open64 Compiler Suite" (PDF). Developer.amd.com. Archived (PDF) from the original on 24 January 2022. Retrieved 2 March 2022.
  16. ^ "cc65 - a freeware C compiler for 6502 based systems". Retrieved 14 September 2011.
  17. ^ "C/C++ interpreter Ch C99 features". SoftIntegration, Inc. 15 February 2008. Retrieved 15 February 2008.
  18. ^ "Clang Compiler User's Manual". Retrieved 14 October 2017.
  19. ^ "The CompCert C verified compiler documentation and user's manual (Version 3.10)". 19 November 2021. Retrieved 3 March 2022.
  20. ^ "libfirm homepage". Retrieved 4 February 2014.
  21. ^ "C Language Implementation - Digital Mars". Retrieved 14 September 2011.
  22. ^ "Status of C99 features in GCC". Free Software Foundation, Inc. 28 July 2021. Retrieved 13 August 2021.
  23. ^ "Status of C99 features in GCC 4.6". Free Software Foundation, Inc. 23 May 2013. Retrieved 23 May 2013.
  24. ^ "Status of C99 features in GCC 4.7". Free Software Foundation, Inc. 23 May 2013. Retrieved 23 May 2013.
  25. ^ "Semantics of Floating Point Math in GCC". 20 July 2018. Retrieved 12 August 2018.
  26. ^ "IBM C for AIX, V6.0 Now Supports the C99 Standard". 2 July 2002. Retrieved 31 January 2016.
  27. ^ "IBM - XL C/C++ for AIX". Retrieved 31 January 2016.
  28. ^ "IBM Rational Logiscope support for C99 standard - United States". 24 February 2012. Retrieved 31 January 2016.
  29. ^ "Reader Q&A: What about VC++ and C99?". Sutter’s Mill. 3 May 2012. Retrieved 31 January 2016.
  30. ^ "A.27 Use of C99 Variable Length Arrays". Microsoft. Retrieved 31 January 2016.
  31. ^ "Microsoft to C99 Developers: Use ISO C++". InfoQ. Retrieved 31 January 2016.
  32. ^ "C99 library support in Visual Studio 2013". Microsoft. 19 July 2013. Retrieved 31 January 2016.
  33. ^ "C++11/14 STL Features, Fixes, And Breaking Changes In VS 2013". Blogs.msdn.com. 28 June 2013. Retrieved 8 April 2014.
  34. ^ "Announcing full support for a C/C++ conformant preprocessor in MSVC". Microsoft. 27 March 2020. Retrieved 17 September 2020.
  35. ^ "C99 compliance in Open Watcom". Archived from the original on 3 May 2015. Retrieved 25 September 2015.
  36. ^ "Pelles C Overview". January 2013. Archived from the original on 13 March 2022. Retrieved 2 March 2022.
  37. ^ "Sun Studio 12: C Compiler 5.9 Readme". Sun Microsystems, Inc. 31 May 2007. Retrieved 23 September 2012.
  38. ^ "Tiny C Compiler Reference Documentation". Retrieved 31 January 2016.
  39. ^ According to the project's TODO list complex types are the only missing C99 feature. Variable Length Arrays have been added in TCC 0.9.26 [1]
  40. ^ "TCC?: Tiny C Compiler". Retrieved 31 January 2016.
  41. ^ "Standards - Using the GNU Compiler Collection (GCC)". Gcc.gnu.org. Retrieved 8 April 2014.

Further reading

edit
edit
Preceded?by C language standards Succeeded?by
考试紧张吃什么药可缓解 为什么一直下雨 梦见黄瓜是什么意思 胆红素高挂什么科检查 富察氏是什么旗
打坐有什么好处 谷丙转氨酶高吃什么药可以降下来 刘邦字什么 敲锣打鼓是什么生肖 ghz是什么意思
猪日冲蛇什么意思 pet是什么检查 经常口腔溃疡挂什么科 legacy什么意思 10月13号是什么星座
00年是什么年 昶字五行属什么 花旗参和西洋参有什么区别 aid是什么意思 皮粉色是什么颜色
胃食管反流吃什么中成药最好creativexi.com 打了鸡血是什么意思hcv8jop7ns3r.cn 狮子的天敌是什么动物hcv9jop6ns4r.cn 中度贫血吃什么补血最快hcv8jop3ns0r.cn 两个人在一起的意义是什么hcv8jop2ns2r.cn
看日出是什么生肖clwhiglsz.com 结石用什么药hcv8jop4ns4r.cn 蜘蛛结网预示着什么hcv7jop4ns7r.cn 暖气是什么意思bfb118.com 兼性厌氧是什么意思hcv7jop9ns0r.cn
什么叫浮小麦xinjiangjialails.com low什么意思hcv8jop1ns7r.cn 血糯米是什么米hcv9jop4ns8r.cn 玉髓是什么玉hcv8jop6ns2r.cn 吃什么药可以自杀hcv8jop9ns3r.cn
狗狗胰腺炎吃什么药sanhestory.com 大海是什么颜色hcv7jop5ns1r.cn 匚读什么hcv8jop4ns4r.cn 什么是活检检查hcv8jop0ns0r.cn gdp指的是什么hcv8jop2ns8r.cn
百度