电子产业一站式赋能平台

PCB联盟网

搜索
查看: 32|回复: 0
收起左侧

这两种 C 语言语法,建议别用,不然会被骂惨!

[复制链接]

485

主题

485

帖子

1623

积分

三级会员

Rank: 3Rank: 3

积分
1623
发表于 2024-8-24 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师
3 }% Z+ U3 @! o4 y! N关注我,一起变得更加优秀!. o2 M0 i0 m& \& ?  S( [, E
2 f' x$ s9 j# }2 U3 p4 c, L# G

izvqhepdig36406072152.jpg

izvqhepdig36406072152.jpg

1 |# O! o- b$ ~( E6 Z/ T7 W语法一:& A5 U1 @/ m8 P5 c  _

- }% s4 x' v: @" D# F4 @/ O一起来看看以下这段代码,在这段代码里面,我们 使用  和 %> 来替代 { 和 }使用  和 :> 来替代 [ 和 ]
  • /*使用  来替代 { 和 },例如:函数定义:int main(void)! r0 H/ R. A6 `* h- A; \; }5 D
    使用  来替代 [ 和 ],例如:数组定义:int array*/int main(void)    int array = 11, 22, 33, 44, 55%>;
    & n& y: r( x" j) z8 M    printf(" >>> %d \r
    1 S9 y/ I( d# b; T! o2 j", array[3:>);    printf(" >>> %d \r
    2 |7 d1 R+ h- s% W( t. Q3 y5 T; \" u! u", array4]);
    : f3 g6 u$ g( X% I, F    return 0;%># F2 x8 k- r& s5 k. Q
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    + R" V/ \- g" o; g+ r; Z& }0 X. ?! g% n

    zfizhyx4a3g6406072252.jpg

    zfizhyx4a3g6406072252.jpg
    3 j" \: D* c4 p! t! U% O
    7 X$ n; r5 f4 c9 k% P) A6 h. D
    之所以能编译成功,是因为在早期的 IBM 键盘里,是没有中括号 [ ] 和 大括号 { } 的,但因为 IBM 公司在当时的计算机产业里面,有着举足轻重的地位,/ `& W% S5 I7 u& r% M

    - K& N0 e* ]/ U9 d. H. f$ g所以,C 语言为了兼容早期的 IBM 键盘,可以使用其他的的组合符号来替代中括号和大括号,并且把这种替代方式保留到现在。! h; G" u/ U9 c6 y% o! L. y
    - z& d* d, b# G: I4 |- b: b
    语法二:% K5 B: s  G- u. R' Q$ z1 i

    8 S% Z: d9 C: f$ k: C8 b- q再一起看看以下代码,介绍一种不常用的 C 语言数组成员访问方法,把成员索引号放在数组名前面,并且把数组名放在中括号里面(还用了特殊符号代替中括号),跟常用的 array[3] 访问方式,有很大的区别。
  • #include "stdio.h"
    / ]* F4 ]" i' J4 D$ i  t  m' L3 Eint main(void){    int array[5] = {11, 22, 33, 44, 55};( _. h) [1 V* f5 I
        //常用的 C 语言数组成员访问方法    printf(">>> %d \r
    + `2 k0 p7 x  }& y2 K& ^+ C: e", array[3]);: |, m5 `: J) V4 ~  g
        //不经常用到的 C 语言数组成员访问方法    printf(">>> %d \r. h5 y9 a9 @, I) G5 }! i
    ", 2[array:>);}, F  {. Q$ M, j+ g
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    * Y" X- r" g- [
    9 }5 `4 J  G+ J

    domc3whhfz16406072352.jpg

    domc3whhfz16406072352.jpg

    - r3 l; C, e& Z/ ]  \2 n7 s2 }, [" R以上两种不常见的 C 语言语法,建议别在工程项目里面使用,一旦使用,大概率会被接手代码的人直接问候,不信的话,试试?~
    ; R- I) w) h) O$ ^5 S. ]& j0 s, j* C# |

    0ouxvoyjjk5Expression_14@2x6072452.png

    0ouxvoyjjk5Expression_14@2x6072452.png

    9 h2 T( T, U9 G' H
    5 @( r4 X3 K& E  k-END-
    6 I0 w1 J" h7 o" R! _+ c往期推荐:点击图片即可跳转阅读" K$ ^: }9 o& i" h3 C
                                                           
    6 k4 |+ y+ Z5 A) |' O$ Z                                                                0 m7 m- Y  o. F' o' w
                                                                            8 c2 Q6 d) R( d3 a+ N2 y
                                                                                    " |% `0 b; ~( G3 S

    tcfvinoj0p46406072552.jpg

    tcfvinoj0p46406072552.jpg
    , z4 u0 R& L$ j& M  p" H
                                                                                   
    ; h, t7 V" f9 @3 E6 D0 R5 {                                                                                        嵌入式 C 语言,那些“花里胡哨”的语法特性。
    5 @: \! v/ m- e8 n, E1 {                                                       
    + t( e0 R; S7 R                                                                6 G9 s; J* w7 S* C" s$ G
                                                                            9 k/ w: a+ {) A
                                                                                   
    " v7 y, J/ ]% a1 B7 G

    b4fki5shdvf6406072652.jpg

    b4fki5shdvf6406072652.jpg
    0 k- s7 c  a) ^" J) ^1 l
                                                                                    1 k; d0 D0 e( M  Y% Q
                                                                                            嵌入式 C 语言的自我修养
    8 `/ K9 m3 t, E. S) S' P7 O. i                                                                2 A3 l/ u0 X5 ^1 j9 J
                                                                           
    : ~' s: i6 ^  u; p) g. O                                                                                , R# b) t- \8 T1 X) ?* }& \* G1 e# q

    bjkhigdpl5d6406072752.jpg

    bjkhigdpl5d6406072752.jpg

    % L+ M( c3 N3 {; g3 t: O& L                                                                               
    ! D' v# q7 P2 v6 ^                                                                                        嵌入式 C 语言知识点,动态变长数组: f; P5 E) \2 C: u
                                                                                   
    / g$ d9 d+ p1 s; y                                                                        3 i1 Y+ K! T4 C+ g1 d9 |
                                                                    6 |: x- f/ z' f
                                                            我是老温,一名热爱学习的嵌入式工程师8 m+ l3 j$ A7 ]2 U/ A8 @& F
    关注我,一起变得更加优秀!
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表