大腿麻木是什么原因| lala是什么意思| 怕什么| 字义是什么意思| 何解是什么意思| 洗牙有什么危害吗| 照猫画虎什么意思| 疤痕憩室什么意思| 跖疣用什么药| 直肠炎吃什么药好的快| 不作为是什么意思| 马是什么牌子的车| 鸟来家里预示什么| 什么补肝| 什么补肾效果最好| 口角是什么意思| 椰子水有什么功效| 性冷淡吃什么药最好| 钟字五行属什么| 处女膜什么样子| 10月20日是什么星座| 1月4日是什么星座| 生肖本命带红花是什么生肖| 为什么要冬病夏治| 什么是面瘫| 摇粒绒是什么面料| 孩子发烧挂什么科| 腿麻是什么病的前兆吗| 非你莫属是什么意思| 羊奶和牛奶有什么区别| 厚黑学的精髓是什么| 脑炎什么症状| 梦见彩虹是什么征兆| 什么方法避孕最安全有效| 荷花代表什么| wbc是什么意思| 肺部条索影是什么意思| 心阴不足吃什么中成药| 武夷山在什么地方| 狗肉不能和什么食物一起吃| 谷丙转氨酶高吃什么药可以降下来| 梦见打死狗有什么预兆| 如何知道自己适合什么发型| 生气过度会气出什么病| 苯中毒是什么症状| 尖货是什么意思| 5月27日什么星座| 川崎病是什么原因引起的| 肺炎能吃什么水果| 天蝎座属于什么象星座| 重建是什么意思| 阑尾炎是什么引起的| 半身不遂的前兆是什么症状| 抽烟什么感觉| 吃什么补钾最快最好| 住房公积金缴存基数是什么意思| 脾胃虚弱能吃什么水果| 自闭症是什么病| 湿疹是什么症状| 爸爸的爷爷叫什么| 香鱼又叫什么鱼| hpv42阳性是什么意思| 感染hpv有什么症状| 六月十七是什么星座| 强光斑是什么意思| 高血压吃什么药效果好| 滑膜炎什么症状| 什么是德训鞋| 梦见相亲是什么征兆| 精字五行属什么| 再接再励是什么意思| 什么照镜子里外不是人| 你想要什么我都会给| 铂字五行属什么| 什么是牛蒡| 肾虚吃什么药最有效| 牙龈萎缩是什么原因造成的| 怀孕一个月会有什么反应| cross是什么牌子| 孕妇手麻是什么原因引起的| 卡姿兰属于什么档次| 桃胶什么时候采摘最好| 一个黑一个今念什么| 勖是什么意思| 小脑萎缩有什么症状| 老是肚子饿是什么原因| 68年属什么| 央企和国企有什么区别| 萱五行属什么| 27岁属相是什么生肖| 腚什么意思| 什么原因造成高血压| 荔枝是什么意思| 女人跑马是什么意思| m什么意思| 喝酒打嗝是什么原因| 球蛋白适合什么人打| 1963年五行属什么| 嗯是什么意思| 男生喜欢什么礼物| 礼拜是什么意思| 夜晚咳嗽是什么原因| ctm是什么意思| 牛肉排酸是什么意思| 吃榴莲有什么好处和坏处| 女生为什么会叫| 彩蛋是什么意思| 主动脉瓣退行性变是什么意思| 小鹦鹉吃什么食物| 贵是什么意思| 河南有什么美食| 小三阳和大三阳有什么区别| 伯伯的老婆叫什么| 茯苓不能和什么一起吃| 时辰宜忌是什么意思| 胃热口干口苦口臭吃什么药好| 阴虚火旺吃什么水果| 断念是什么意思| 月黑见渔灯的见读什么| 兆后面是什么单位| 什么是糙米| 大腿为什么会长妊娠纹| 喉咙扁桃体发炎吃什么药| 李连杰什么病| 肺结节看什么科| 什么样的人容易得甲减| 长瘊子是什么原因| 抽油烟机买什么样的好| 拿什么爱你| 上不来气吃什么药好使| 孕晚期流鼻血是什么原因| 纹理是什么意思| 轻度肠化是什么意思| 颜艺是什么意思| 黄瓜什么时候种植| 感冒引起的喉咙痛吃什么药| 秋葵不能和什么一起吃| 小孩病毒性感冒吃什么药效果好| 葛根长什么样子图片| 多动症是什么引起的| nc是什么| 三言两语是什么意思| 什么的知了| 葡萄糖偏高有什么问题| 有什么好吃的外卖| 自省是什么意思| 过期茶叶有什么用途| 拉肚子什么原因| 腿上有白点是什么原因| 19岁属什么的生肖| 郁结是什么意思| 深海鱼油什么时候吃最好| 吃什么补脑最快| 三个火念什么| 梦见白菜是什么预兆| spyder是什么品牌| 微尘是什么意思| 成吉思汗属什么生肖| 数字货币是什么| 中医调理身体挂什么科| 银杯子喝水有什么好处与坏处| 为什么会打雷闪电| 理性是什么意思| 做狐臭手术挂什么科| 胸口闷闷的有点疼是什么原因| 阁僚是什么意思| 早上9点半是什么时辰| 男人吃什么大补| 精工手表什么档次| 甲减长期服用优甲乐有什么危害| 甩货是什么意思| surprise是什么意思| 咳嗽可以吃什么水果| 腹部胀痛什么原因| 满满的回忆什么意思| 扁桃体发炎喉咙痛吃什么药| 白玫瑰的花语是什么| 梦见好多蛇是什么意思| 祝著节是什么时候| 什么不同成语| 梦到棺材什么意思| b超是检查什么的| 什么是庚日| 什么叫窝沟封闭| 小腹凸起是什么原因| 出台什么意思| 百香果什么时候成熟| 嗜酸性气道炎症是什么意思| 什么运动长高最快| 腋下有异味是什么原因| 手抖是什么原因引起的| 食物不耐受是什么意思| 达泊西汀是什么药| 生孩子大出血是什么原因造成的| 胸口疼吃什么药| 免疫力下降吃什么好| 大哥是什么意思| 苹果对身体有什么好处| 冬枣什么时候成熟| 太岁是什么东西| 什么地听| 梦见驴是什么意思| 抗核小体抗体阳性说明什么| 多管闲事是什么意思| 粉色玫瑰花代表什么意思| 农历12月是什么星座| 洛阳以前叫什么名字| 基础病是什么意思| 怀孕第一个月有什么症状| 12月27日什么星座| 长期抽烟清肺喝什么茶| 抱持是什么意思| 乙肝1245阳性什么意思| 总是困是什么原因| 婴儿便秘怎么办什么方法最有效| 保护眼睛用什么眼药水| 昱怎么读音是什么| 11月11是什么星座| 龙什么鱼| 甲亢什么症状| 咽喉异物感吃什么药| 新鲜橄榄菜长什么样子| 麦是什么意思| 乙肝235阳性是什么意思| 什么人不建议吃海参| 缺金的人戴什么最旺| 健脾胃吃什么食物好| 电势是什么| 拉肚子是什么原因引起的怎么办| 缺铁性贫血吃什么药最好| 4b橡皮和2b橡皮有什么区别| 奶头疼是什么原因| 排尿困难吃什么药| 苔菜是什么菜| 偏安一隅是什么意思| 烧高香是什么意思| 咳嗽能吃什么| 为什么会来月经| 一个大一个小念什么| 魂牵梦萦的意思是什么| 健身吃什么长肌肉最快| 腿走路没劲发软是什么原因| 牙髓是什么| 飞行员妻子有什么待遇| 出汗对身体有什么好处| 十一点是什么时辰| 浑身乏力什么病的前兆| 为什么飞机起飞降落要打开遮光板| 右肋骨疼是什么原因| 姑息治疗是什么意思| 女人在什么时候最容易怀孕| 一马平川是什么生肖| 归脾丸什么时候吃效果最好| 肠腺瘤是什么病| 早睡有什么好处| nhl医学上是什么意思| 男性阴囊潮湿是什么病| 夜盲症是什么症状| 木兮是什么意思| 慷慨解囊是什么意思| 录取通知书是什么生肖| 黄芪和什么泡水壮阳| 什么地走路| 虫草有什么功效| 百度Jump to content

外媒记者:改革开放让中国走到世界舞台中央

From Wikipedia, the free encyclopedia
百度 作为中国顶级流量的代表,王源在国际上的知名度和影响力有目共睹。

Modules in C++ are a feature added in C++20 implementing modular programming as a modern alternative to precompiled headers.[1] A module in C++ comprises a single translation unit.[2] Like header files and implementation files, a module can contain declarations and definitions, but differ from precompiled headers in that they do not require the preprocessor directive #include, but rather are accessed using the word import. A module must be declared using the word module to indicate that the translation unit is a module.[1] A module, once compiled, is stored as a .pcm (precompiled module) file which acts very similar to a .pch (precompiled header) file.[3]

Modules most commonly have the extension .cppm (primarily common within Clang and GCC toolchains), though some alternative extensions include .ixx and .mxx (more common in Microsoft/MSVC toolchains).[4]

Though the standard C language does not have modules, dialects of C allow for modules, such as Clang C.[5] However, the syntax and semantics of Clang C modules differ from C++ modules significantly.

History

[edit]

Prior to the conception of modules, C++ relied on the system of headers and source files. Precompiled headers existed and were similar to modules as snapshots of translation units easier to parse by the compiler and thus providing faster compilation[6], but did not have the same laws of encapsulation as modules. Modules were first proposed in 2012 for inclusion to C++14[7], but underwent extensive revisions and an entire redesign until the modern form was merged into C++20.[8]

Main uses

[edit]

Modules provide the benefits of precompiled headers of faster compilation than #included traditional headers, as well as and faster processing during the linking phase.[9][10] This is because modules are not handled by the C preprocessor during the preprocessing step, but rather directly by the compiler during compilation.[11] Modules also reduce boilerplate by allowing code to be implemented in a single file, rather than being separated across a header file and source implementation, although separation of "interface file" and "implementation file" is still possible with modules, though modules provide a cleaner encapsulation of code.[2] Modules eliminate the necessity of #include guards or #pragma once, as modules do not directly modify the source code. Modules, unlike headers, do not have to be processed or recompiled multiple times.[9] However, similar to headers, any change in a module necessitates the recompilation of not only the module itself but also all its dependencies, and the dependencies of those dependencies, et cetera. Like headers, modules do not permit circular dependencies, and will not compile.[12]

A module is imported using the keyword import followed by a module name[a], while a module is declared with export module followed by the name. All symbols within a module meant to be exposed publicly are marked export, and importing the module exposes all exported symbols to the translation unit. If a module is never imported, it will never be linked.[13] Modules can export named symbols, but not macros which are consumed before compilation.[14]

Unlike header inclusions, the order of import statements do not matter.[9] A module can allow for transitive imports by marking an import with export import, which re-exports the imported module to a translation unit that imports the first module.[1] Modules do not enforce any notion of namespaces, though by convention, modules should match namespaces and source file paths (for example, a namespace like com::acme::project::util::ConfigLoader being tied to the module com.acme.project.util.ConfigLoader being in com/acme/project/util/ConfigLoader.cppm, similar to Java convention).[1] using statements will only be applied in translation units if explicitly marked export, making it much less likely that using a using statement to bring symbols into the global namespace will cause name clashes across module translation units. This resolves pollution of using statements in headers, which due to textual inclusion of the header by an #include directive, will always result in using statements adding symbols into scope, even if unintentional.

Standard library modules

[edit]

Since C++23, the C++ standard library has been exported as a module as well, though as of currently it must be imported in its entirety (using import std;).[15] The C++ standards offer two standard library modules:

Name Description
std Exports all declarations in namespace std and global storage allocation and deallocation functions that are provided by the importable C++ library headers including C library facilities (although declared in standard namespace).
std.compat Exports the same declarations as the named module std, and additionally exports functions in global namespace in C library facilities. It thus contains "compat" in the name, meaning compatibility with C.

The module names std and std.* are reserved by the C++ standard, and thus declaring a module whose name matches either pattern will issue a compiler warning.[16] However, most compilers provide a flag to bypass or suppress that warning (for example -Wno-reserved-module-identifier in Clang and GCC).[3]

Tooling support

[edit]

Currently, only GCC, Clang, and MSVC offer support for modules and import std;.[17] The Clangd language server supports modules.

Build system support varies. CMake, MSBuild, XMake, Meson, and Build2 provide full support for modules. Generated build systems such as Make and Ninja also have support for modules. However, Gradle for C++ and Bazel do not yet support modules.[18]

Example

[edit]

A simple example of using modules is as follows:

MyClass.cppm

export module acme.project.MyClass;

import std;

export namespace acme::project {

class MyClass {
private:
    int x;
    std::string name;
public:
    MyClass(int x, const std::string& name):
        x{x}, name{name} {}

    [[nodiscard]]
    int getX() const noexcept {
        return x;
    }

    void setX(int newX) noexcept {
        x = newX;
    };

    [[nodiscard]]
    std::string getName() const noexcept {
        return name;
    }

    void setName(const std::string& newName) noexcept {
        name = newName;
    }
};

}

Main.cpp

import std;

import acme.project.MyClass;

using acme::project::MyClass;

int main(int argc, char* argv[]) {
    MyClass me(10, "MyName");
    me.setX(15);
    std::println("Hello, {0}! {0} contains value {1}.", me.getName(), me.getX());
}

Header units

[edit]

Headers may also be imported using import, even if they are not declared as modules. Imported headers are called "header units", and are designed to allow existing codebases to migrate from headers to modules more gradually.[19][20] The syntax is similar to including a header, with the difference being that #include is replaced with import. As import statements are not preprocessor directives but rather statements of the language read by the compiler[11], they must be terminated by a semicolon. Header units automatically export all symbols, and differ from proper modules in that they allow the emittance of macros, meaning all translation units that import the header unit will obtain its contained macros. This offers minimal breakage between migration to modules.[9] The semantics of searching for the file depending on whether quotation marks or angle brackets are used apply here as well. For instance, one may write import <string>; to import the <string> header, or import "MyHeader.h"; to import the file "MyHeader.h" as a header unit.[1] Most build systems, such as CMake, do not support this feature yet.[21]

Anatomy

[edit]

Module partitions and hierarchy

[edit]

Modules may have partitions, which separate the implementation of the module across several files.[1] Module partitions are declared using the syntax A:B, meaning the module A has the partition B. Module partitions cannot individually be imported outside of the module that owns the partition itself, meaning that any translation unit that requires code located in a module partition must import the entire module that owns the partition.[1]

The module partition B is linked back to the owning module A with the statement import :B; in the file containing the declaration of module A or any other module partition of A (say A:C), which implicitly resolves :B to A:B, because the module is named A.[3] These import statements may themselves be exported by the owning module, even if the partition itself cannot be imported directly, and thus importing code from a partition is done by just importing the entire module.[1]

Other than partitions, modules do not have a hierarchical system or "submodules", but typically use a hierarchical naming convention, similar to Java's packages[b]. Only alphanumeric characters and the period and underscore may appear in the name of a module.[22] In C++, the name of a module is not tied to the name of its file or the module's location, unlike in Java[23], and the package it belongs to must match the path it is located in.[24] For example, the modules A and A.B in theory are disjoint modules and need not necessarily have any relation, however such a naming scheme is often employed to suggest that the module A.B is related or otherwise associated with the module A.[1]

The naming scheme of a C++ module is inherently hierarchical, and the C++ standard recommends re-exporting "sub-modules" belonging to the same public API (i.e. module alpha.beta.gamma should be re-exported by alpha.beta, etc.), even though dots in module names do not enforce any hierarchy. The C++ standard recommends lower-case ASCII module names (without hyphens or underscores), even though there is technically no restriction in such names.[25] Also, because modules cannot be re-aliased or renamed (short of re-exporting all symbols in another module), module names can be prefixed with organisation and project names for both clarity and to prevent naming clashes (i.e. google.abseil instead of abseil).[25] Also, unlike Java, whose packages may typically include an additional top-level domain (TLD) in front to avoid namespace clashes, C++ modules need not have this convention (for example, it may be more common to see acme.project.myfunctionality.MyModule than com.acme.project.myfunctionality.MyModule, though both names are valid).

Module purview and global module fragment

[edit]

In the above example, everything above the line export module acme.project.MyClass; in the file MyClass.cppm is referred to as what is "outside the module purview", meaning what is outside of the scope of the module.[1] Typically, all #includes are placed outside the module purview between the statement module; and the declaration of export module, like so:

module; // Optional; marks the beginning of the global module fragment (mandatory if an include directive is invoked above the export module declaration)

// Headers are included in outside the module purview, before the module is declared
#include <print>
#include "MyHeader.h"

export module acme.project.MyModule; // Mandatory; marks the beginning of the module preamble

// Imports of named modules and header units come after the module declaration
// Import statements are placed immediately after the module declaration and do not appear after any code or symbol declarations
// In non-module translation units, #include directives precede import statements
import std;
import <string>;
import acme.project.util.UtilitySymbols;
import "Foo.h";
import <thirdlib/features/Feature.h>;

// Code here...

module: private; // Optional; marks the beginning of the private module fragment

All code which does not belong to any module exists in the so-called "unnamed module" (also known as the global module fragment), and thus cannot be imported by any module.[1]

The file containing main() may declare a module, but typically it does not (as it is unusual to export main() as it is typically only used as an entry point to the program, and thus the file is usually a .cpp file and not a .cppm file). A program is ill-formed if it exports main() and doing so causes undefined behaviour[26], but will not necessarily be rejected by the compiler.

Private module fragment

[edit]

A module may declare a "private module fragment" by writing module: private;, in which all declarations or definitions after the line are visible only from within the file and cannot be accessed by translation units that import that module.[3] Any module unit that contains a private module fragment must be the only module unit of its module.[1]

Third-party library support

[edit]

As modules are a recent addition and compiler vendors were notably slow to develop module support, most third-party libraries are still offered only as headers. However, some popular libraries have added module support. These include fmt (a formatting and printing library), nlohmann.json (a JSON library), and various boost.* libraries from the Boost C++ libraries.[27]

Clang C modules

[edit]

An unrelated, but similar feature are Clang C modules. Clang offers non-standard module support for C, however the semantics differ significantly from C++ modules. Clang C modules exist for essentially the same reason as C++ modules:[5]

  • To ensure translation units are compiled only once
  • To ensure translation units are included only once
  • To prevent leakage of unwanted macros
  • To ensure clear boundaries of a library (i.e. specify what headers belong to what library)
  • To explicitly control what symbols are exported

C modules instead use a file called module.modulemap to define modules. For instance, the C standard library module map may look something like:

module std [system] [extern_c] {
    module assert {
        textual header "assert.h"
        header "bits/assert-decls.h"
        export *
    }

    module complex {
        header "complex.h"
        export *
    }

    module ctype {
        header "ctype.h"
        export *
    }

    module errno {
        header "errno.h"
        header "sys/errno.h"
        export *
    }

    module fenv {
        header "fenv.h"
        export *
    }

    // ...more headers follow...
}

This allows for the importing of C libraries like so:

import std.io;

int main(int argc, char* argv[]) {
    if (argc > 1) {
        printf("Hello, %s!\n", argv[1]);
    } else {
        printf("Hello, world!\n");
    }
    return 0;
}

Clang C modules can also be used in C++, although this is less portable as these conflict with the existing module implementation in C++. For example, the std module shown earlier can be extended to C++ using a requires declaration:

module std {
     // C standard library...

     module vector {
         requires cplusplus
         header "vector"
     }

     module type_traits {
         requires cplusplus11
         header "type_traits"
     }

     // more headers...
}

See also

[edit]

Notes

[edit]
  1. ^ The import keyword in C++ differs in meaning than other languages. For instance, import in Java is actually analogous to using in C++ and not C++ import. In the former, an import simply aliases the type or de-qualifies a namespace, because Java loads .class files dynamically as necessary, thus making all types available simply by fully qualifying all namespaces (rather than having to explicitly declare accessible modules). However, in C++ modules are not automatically all linked, and thus they must be manually "imported" to be made accessible, as import indicates that the translation unit must access code in the imported module. Thus, it is probably more appropriate to compare import in C++ to mod in Rust, which "declares" or indicates to the compiler to find the module to link against.
  2. ^ It is more appropriate to compare packages in Java and modules in C++, rather than modules in Java and modules in C++. Modules in C++ and Java differ in meaning. In Java, a module (which is handled by the Java Platform Module System) is used to group several packages together, while in C++ a module is a translation unit, strictly speaking.

References

[edit]
  1. ^ a b c d e f g h i j k l cppreference.com (2025). "Modules (since C++20)". cppreference.com. Retrieved 2025-08-07.
  2. ^ a b Szalay, R.; Porkoláb, Z. (2025). "Refactoring to Standard C++20 Modules". Journal of Software: Evolution and Process. 37 (e2736). doi:10.1002/smr.2736. hdl:10831/113355. Retrieved 2025-08-07.
  3. ^ a b c d "Standard C++ Modules". clang.llvm.org.
  4. ^ "Overview of modules in C++". Microsoft. 24 April 2023.
  5. ^ a b "Modules". clang.llvm.org.
  6. ^ "Creating Precompiled Header Files". MSDN. Microsoft. 2015. Archived from the original on 2025-08-07. Retrieved 2025-08-07.
  7. ^ Daveed Vandevoorde (2025-08-07). "N3347=12-0037: Modules in C++ (Revision 6)" (PDF). ISO/IEC JTC1/SC22/WG21. Retrieved 2025-08-07.
  8. ^ Richard Smith (2025-08-07). "P1103R3: Merging Modules" (PDF). ISO/IEC JTC1/SC22/WG21. Retrieved 2025-08-07.
  9. ^ a b c d "Compare header units, modules, and precompiled headers". Microsoft. 12 February 2022.
  10. ^ Paul Krill (2 June 2022). "C++ 23 to introduce module support". InfoWorld.
  11. ^ a b Michael Spencer (2025-08-07). "P3034R1: Module Declarations Shouldn't be Macros". ISO/IEC JTC1/SC22/WG21. Retrieved 2025-08-07.
  12. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §9.3, "Module interface units and import/export rules," and §16.3, "Module dependencies."
  13. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §9.3, "Module interface units and import/export rules," and §16.2, "Module import semantics."
  14. ^ Alisdair Meredith (2025-08-07). "DxxxxR0: Modules and Macros". ISO C++. Retrieved 2025-08-07.
  15. ^ "Standard library - Importing modules". cppreference.com.
  16. ^ cppreference.com (2025). "C++ Standard Library". cppreference.com. Retrieved 2025-08-07.
  17. ^ "Compiler support for C++20". cppreference.com.
  18. ^ "Are We Modules Yet?: Tools Support". arewemodulesyet.org. Elias Steurer.
  19. ^ "Walkthrough: Build and import header units in Microsoft Visual C++". Microsoft. 12 April 2022.
  20. ^ "Standard C++ Modules - Header Units". clang.llvm.org.
  21. ^ CppNow (2025-08-07). The Challenges of Implementing C++ Header Units: C++ Modules - Daniel Ruoso - CppNow 2023. YouTube. Retrieved 2025-08-07.
  22. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §9.2, "Module interface units and import/export rules."
  23. ^ "Creating a Package". docs.oracle.com.
  24. ^ "Managing Source and Class Files". docs.oracle.com.
  25. ^ a b "Naming guidelines for modules". isocpp.org.
  26. ^ ISO/IEC 14882:2020. Programming Languages – C++ (3rd ed.). International Organization for Standardization. §3.6.1. "Program execution: the main() function."
  27. ^ "Are We Modules Yet?". arewemodulesyet.org. Elias Steurer.
是谁在敲打我窗是什么歌 牙痛吃什么药最有效 赟怎么读 什么意思 大腿内侧是什么经络 锦五行属什么
小孩脸上长痣是什么原因引起的 乌龟为什么喜欢叠罗汉 为什么失眠 夹生是什么意思 小孩一到晚上就发烧是什么原因
尿频尿不尽吃什么药 08年属什么生肖 悱恻是什么意思 拉肚子拉水吃什么药 免疫球蛋白e高说明什么
自身免疫性胃炎是什么意思 ons是什么 haccp认证是什么意思 梦见打篮球是什么意思 牙齿出血是什么病表现出来的症状
割包皮挂什么科室hcv7jop4ns6r.cn 茄子能治什么病hcv9jop2ns7r.cn 瑞舒伐他汀钙片治什么病hcv7jop6ns8r.cn 尿检是检查什么的hcv9jop4ns6r.cn 为什么拉尿会刺痛hcv8jop4ns4r.cn
头孢曲松是什么药hcv9jop1ns0r.cn 慢性胰腺炎吃什么药hcv9jop7ns4r.cn 成全是什么意思tiangongnft.com 乱点鸳鸯谱什么意思jingluanji.com 为什么天气热皮肤就痒hcv7jop5ns2r.cn
nsaids是什么药hcv8jop4ns6r.cn 怀孕可以吃什么水果hcv9jop8ns1r.cn 松字五行属什么xianpinbao.com 夏季吃桃子有什么好处hcv9jop5ns3r.cn 念珠菌用什么药最好hcv8jop7ns7r.cn
上嘴角有痣代表什么xinjiangjialails.com 直肠炎用什么药效果最好hcv9jop2ns5r.cn 口腔溃疡吃什么维生素hcv9jop4ns0r.cn 促甲状腺激素偏高有什么症状clwhiglsz.com 宫颈转化区三型是什么意思hcv8jop1ns5r.cn
百度