电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

485

主题

485

帖子

1623

积分

三级会员

Rank: 3Rank: 3

积分
1623
发表于 2024-8-24 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师
6 n) H% y' m: ~5 K, s* d关注我,一起变得更加优秀!
: [: g8 d, c  ~) ]+ G- w$ w7 M; ~3 R( E2 u

esotnnw5eum6403554431.jpg

esotnnw5eum6403554431.jpg
3 \$ A9 _! O7 w  u
语法一:
' d& Z2 i" t. ^3 I: o3 r; e& v4 y+ D$ {' V% w
一起来看看以下这段代码,在这段代码里面,我们 使用  和 %> 来替代 { 和 }使用  和 :> 来替代 [ 和 ]
  • /*使用  来替代 { 和 },例如:函数定义:int main(void)
    ( {6 ~& X# i: j4 m使用  来替代 [ 和 ],例如:数组定义:int array*/int main(void)    int array = 11, 22, 33, 44, 55%>;
    . B+ {; J+ s: j& G0 w- g    printf(" >>> %d \r4 L9 `$ y3 W8 E! [) j5 y& g
    ", array[3:>);    printf(" >>> %d \r
    ) B2 m9 \% z# ^+ I) e5 n", array4]);' R9 v; R# F! P4 ^! r5 i" U# n1 b
        return 0;%>7 ^; P8 L7 Y, \" ~) d
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    + @- v6 T" F! m  Y* M! K) y
    0 I; p, V  l& t8 F" J, n* t

    qzmufig1n3o6403554531.jpg

    qzmufig1n3o6403554531.jpg

    " D9 F1 K& [" [4 q/ n1 ~% ^( b% ~; ]6 x5 Z7 r
    之所以能编译成功,是因为在早期的 IBM 键盘里,是没有中括号 [ ] 和 大括号 { } 的,但因为 IBM 公司在当时的计算机产业里面,有着举足轻重的地位,
    7 O8 X9 a: [& v8 D  d+ ^# `9 G. O6 @, H& P
    所以,C 语言为了兼容早期的 IBM 键盘,可以使用其他的的组合符号来替代中括号和大括号,并且把这种替代方式保留到现在。) d2 ?/ U9 C9 c

    ' T: p" _% w- C; P6 k/ y! _- i  u语法二:5 t6 W1 m% V+ q; h! f; T, f( ^0 o

    1 {  h7 a8 G' |再一起看看以下代码,介绍一种不常用的 C 语言数组成员访问方法,把成员索引号放在数组名前面,并且把数组名放在中括号里面(还用了特殊符号代替中括号),跟常用的 array[3] 访问方式,有很大的区别。
  • #include "stdio.h"
    ! r% m. }, q) kint main(void){    int array[5] = {11, 22, 33, 44, 55};
    ( C1 M# X  N" b; w9 M9 X    //常用的 C 语言数组成员访问方法    printf(">>> %d \r
    - `; [7 g+ @2 G. I4 D) S& \4 B", array[3]);
    7 Y% O' `2 f5 B0 J    //不经常用到的 C 语言数组成员访问方法    printf(">>> %d \r
    4 ]4 z; ]2 [( G! ^& d  s", 2[array:>);}
    $ A- O' F2 h9 Z7 W上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。$ [( i& x2 }2 L5 o6 p4 T: p2 F$ R& l  {

    ( b* S2 J* p6 N8 f

    piiutevozw46403554631.jpg

    piiutevozw46403554631.jpg

    * w0 o7 @& }; [0 h$ i; m以上两种不常见的 C 语言语法,建议别在工程项目里面使用,一旦使用,大概率会被接手代码的人直接问候,不信的话,试试?~: |8 F# y- s* M1 P, d+ z! \' @

    t2kas50mpguExpression_14@2x3554731.png

    t2kas50mpguExpression_14@2x3554731.png
    6 B: N( I  w( ?- ^9 W
    8 }( `; W3 n' e: L" }
    -END-! m- N" Q% {  T6 A' p7 H2 E- O
    往期推荐:点击图片即可跳转阅读
    9 c9 Y, x8 j' j6 m7 h: o                                                       
    3 F& X3 r$ W) N& ]' H7 q& `* l                                                                " G' a9 w/ \3 C4 n
                                                                            2 A" K6 C7 O& Q8 O0 }  f1 }5 U
                                                                                   
    9 g8 N- a$ z# r8 q; F9 {& Q6 e

    xrl4qdtmad46403554831.jpg

    xrl4qdtmad46403554831.jpg
    , S* C1 {6 D+ m, Q3 [
                                                                                    0 z) p8 i5 }( \5 f; Y
                                                                                            嵌入式 C 语言,那些“花里胡哨”的语法特性。8 f; G% L) k( ]: @) W6 u7 {7 C
                                                            * d6 d* W3 X! f
                                                                    $ \  G/ q" j- i/ [
                                                                           
    8 I7 Y& \2 |' y& I! h' h                                                                                " c0 I/ d7 b. ]7 {5 |

    wscq2olinaj6403554931.jpg

    wscq2olinaj6403554931.jpg

    3 a+ O" `( `: P8 k- v: e                                                                                , Y) c! R6 c% i! }/ B0 y
                                                                                            嵌入式 C 语言的自我修养, _1 q' ?' ?3 j
                                                                    * Y7 Q# x+ D9 e7 ]/ @0 Y
                                                                            . t. v' U2 d6 s
                                                                                    2 g' D  f% d$ m+ w! L- O

    za2qmmj3csk6403555031.jpg

    za2qmmj3csk6403555031.jpg

    6 U/ i) Y0 O! |                                                                               
    + f9 q( H; w  P2 R                                                                                        嵌入式 C 语言知识点,动态变长数组* s& M* d& L3 b6 Q* W
                                                                                    9 r3 e  k0 Z4 |( O
                                                                            ! d) b; I9 a4 k# S# a
                                                                    + O2 o( Q, v$ s' d7 K! \
                                                            我是老温,一名热爱学习的嵌入式工程师
    . e6 i1 X; m% w: C4 g关注我,一起变得更加优秀!
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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