电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

485

主题

485

帖子

1623

积分

三级会员

Rank: 3Rank: 3

积分
1623
发表于 2024-8-24 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师
) K- Q) v+ g* w' e. R- U; M关注我,一起变得更加优秀!
' S2 h' T: X. I5 {/ o1 P1 N) e1 x% d1 Q; v  ?. ~% E2 _

1jz3yw5gp3r64028714410.jpg

1jz3yw5gp3r64028714410.jpg

/ q0 T% o' h9 X0 z  b语法一:
. r& P' }% |2 v! Q4 O7 O: S* H4 L, w8 ?8 D( x* x
一起来看看以下这段代码,在这段代码里面,我们 使用  和 %> 来替代 { 和 }使用  和 :> 来替代 [ 和 ]
  • /*使用  来替代 { 和 },例如:函数定义:int main(void)( X! `. j1 b9 D) p5 ?
    使用  来替代 [ 和 ],例如:数组定义:int array*/int main(void)    int array = 11, 22, 33, 44, 55%>;
    ' p% q1 N& P& ]1 V$ m' ~    printf(" >>> %d \r
    : l  D& n$ X5 j/ f( w/ m# Y# ]", array[3:>);    printf(" >>> %d \r' M+ B  H  v0 D3 F
    ", array4]);1 Q: X* x( O- [. w! @. Y* k
        return 0;%>$ l5 @9 g. c4 v' f% H7 r; G1 n) z. ^
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    " ^: E. \+ a  L
    : L/ f) K6 o% o8 j& o

    5cxd0mbv1ip64028714510.jpg

    5cxd0mbv1ip64028714510.jpg
    7 x( e( j) f6 g. B( @+ s: e

    9 e. S3 r8 H" E之所以能编译成功,是因为在早期的 IBM 键盘里,是没有中括号 [ ] 和 大括号 { } 的,但因为 IBM 公司在当时的计算机产业里面,有着举足轻重的地位,
    : n8 E$ z, d: }7 {5 d  g, r% X# W/ \( m& R8 o# ~
    所以,C 语言为了兼容早期的 IBM 键盘,可以使用其他的的组合符号来替代中括号和大括号,并且把这种替代方式保留到现在。6 \) ^$ Q  y5 ?1 Q" F: `

    8 U: K# t1 z6 f1 v5 p9 g3 \9 J$ d3 I语法二:# P. n) W( M/ B; K0 Y3 E
    $ {. Y" I; c9 `5 S( ]# ~6 A# E
    再一起看看以下代码,介绍一种不常用的 C 语言数组成员访问方法,把成员索引号放在数组名前面,并且把数组名放在中括号里面(还用了特殊符号代替中括号),跟常用的 array[3] 访问方式,有很大的区别。
  • #include "stdio.h"* q; R: T# e$ ~3 a& C$ w# i; c" F
    int main(void){    int array[5] = {11, 22, 33, 44, 55};
    ; T* r/ A  q# @3 G, K5 L    //常用的 C 语言数组成员访问方法    printf(">>> %d \r
      _: e; x6 m& h, E  L", array[3]);5 t" u. c  _) h
        //不经常用到的 C 语言数组成员访问方法    printf(">>> %d \r; ?" @+ T9 d0 B
    ", 2[array:>);}9 m# V1 Y/ }5 q7 W9 l7 L7 {1 g- ?
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    ; R7 U3 `8 t) o0 y3 T( R* ]
    4 P. m" V3 P2 J; M4 ~7 w* @4 a" n) M

    vu2t20ow3zi64028714610.jpg

    vu2t20ow3zi64028714610.jpg

    + X6 }* x3 t- W$ L7 ^& b以上两种不常见的 C 语言语法,建议别在工程项目里面使用,一旦使用,大概率会被接手代码的人直接问候,不信的话,试试?~- W1 E' O  R. g" B- _

    bikte2ipyueExpression_14@2x28714711.png

    bikte2ipyueExpression_14@2x28714711.png
    * Y/ X" j$ t- i2 n

    + g: H, B1 Z; K7 D# `8 L-END-
    & @" D( P1 \" D3 y! K# t4 P* t往期推荐:点击图片即可跳转阅读
    / c; C: y4 L0 S+ n. N                                                       
    . R; b$ T$ ~& O" \0 G7 K- B                                                                ' z+ w( o& h, p' ?! e* x. G
                                                                            8 w% E1 h# N, t; l( D' x1 K
                                                                                    4 k  D9 L& \) u9 S" g" q' j

    ti1sgtypmzm64028714811.jpg

    ti1sgtypmzm64028714811.jpg
    ; s& s1 F( d9 T3 Z9 A" ]
                                                                                    0 S7 i7 }3 g! Q2 M6 j$ ]1 n: V- j
                                                                                            嵌入式 C 语言,那些“花里胡哨”的语法特性。
      A: A: E9 K3 X1 }# ^                                                        9 x# @" O1 Z' m5 M4 x, b# [6 S
                                                                   
    0 ]7 X6 e  P1 e. X0 ~8 k) W0 p3 l                                                                       
    ! g1 Y' j% ^) X3 H1 v                                                                                / }$ g' z( k% ^, x# J5 V; x9 f

    pgn005fryoz64028714911.jpg

    pgn005fryoz64028714911.jpg

    ) ]0 ~; Z! J1 a' w                                                                                ; [+ t0 M$ N0 G* J( P- h* Y
                                                                                            嵌入式 C 语言的自我修养
    7 o- q: k" k; k                                                                , A$ p; _: ^+ X, P* h/ `
                                                                            9 f4 S  A$ l2 t9 F2 n8 i
                                                                                   
    " C( H% C+ h. M1 B

    txq0vn1rupj64028715011.jpg

    txq0vn1rupj64028715011.jpg

    & M. _- M% a; E! J0 Z( T                                                                               
    ) q" d1 H- ?/ c* W6 c; j6 Q                                                                                        嵌入式 C 语言知识点,动态变长数组+ @$ X7 |4 R8 F0 l
                                                                                   
    ! T- p  W8 m" t                                                                       
    : i) A) Z& W  A# a* L  ]                                                               
    ; u& o* t* q/ E) K' E6 n                                                        我是老温,一名热爱学习的嵌入式工程师0 E. l) j- l# e" h+ i3 S
    关注我,一起变得更加优秀!
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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