From 69f904a83e16c833c686fa05bf2d5b208529c3a2 Mon Sep 17 00:00:00 2001 From: feilong Date: Sat, 23 Oct 2021 17:25:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=86=85=E8=81=94=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ifdef01.md" | 2 +- .../ifdef02.md" | 2 +- .../config.json" | 4 +- .../inline01.json" | 5 ++ .../inline01.md" | 65 +++++++++++++++++++ 5 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 "data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.json" create mode 100644 "data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.md" diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef01.md" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef01.md" index 8a8ab8f..6a29762 100644 --- "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef01.md" +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef01.md" @@ -1,4 +1,4 @@ -# 使用 `#undef` +# 条件编译(1) C语言的宏定义可以通过`#ifdef`,`#else`,`#endif`包含条件编译,下面输出11的程序是? diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef02.md" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef02.md" index a52c6ca..5ee0e16 100644 --- "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef02.md" +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/4.\346\235\241\344\273\266\347\274\226\350\257\221/ifdef02.md" @@ -1,4 +1,4 @@ -# 使用 `#undef` +# 条件编译(2) C语言的宏定义可以通过`#ifdef`,`#else`,`#endif`包含条件编译,下面输出10的程序是? diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/config.json" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/config.json" index 1def284..1be3f5a 100644 --- "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/config.json" +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/config.json" @@ -6,5 +6,7 @@ "C语言" ], "children": [], - "export": [] + "export": [ + "inline01.json" + ] } \ No newline at end of file diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.json" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.json" new file mode 100644 index 0000000..9a06013 --- /dev/null +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.json" @@ -0,0 +1,5 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "inline01.json" +} \ No newline at end of file diff --git "a/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.md" "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.md" new file mode 100644 index 0000000..d1e5032 --- /dev/null +++ "b/data/3.C\350\257\255\350\250\200\351\253\230\351\230\266/4.\351\242\204\345\244\204\347\220\206\345\231\250/5.\345\206\205\350\201\224\345\207\275\346\225\260/inline01.md" @@ -0,0 +1,65 @@ +# 内联函数(1) + +使用 `inline` 关键字可以标注一个函数为内联函数,但是并非所有函数都可以成为内联函数,下面正确的内联函数用法是? +可以在这里测试内联函数对应的汇编: https://godbolt.org/ + +## 答案 + +```c +#include + +inline int add(int x, int y){ + return x+y; +} + +int main(int argc, char** args){ + printf("%d", add(0,1)); + return 0; +} +``` + +## 选项 + +### 直接定义宏字符串常量 + +```c +#include +inline int add(int x, int y); +int add(int x, int y){ + return x+y; +} + +int main(int argc, char** args){ + printf("%d", add(0,1)); + return 0; +} +``` + +### 两个字符串常量组合 + +```c +#include +int add(int x, int y); +inline int add(int x, int y){ + return x+y; +} + +int main(int argc, char** args){ + printf("%d", add(0,1)); + return 0; +} +``` + +### 宏直接拼接 + +```c +#include +int add(int x, int y){ + return x+y; +} + +int main(int argc, char** args){ + printf("%d", add(0,1)); + return 0; +} +``` \ No newline at end of file -- GitLab