电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

485

主题

485

帖子

1623

积分

三级会员

Rank: 3Rank: 3

积分
1623
发表于 2024-8-24 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师) U) t) ?) K  q0 S0 U( k9 i% D
关注我,一起变得更加优秀!" k" B) r  L8 L2 t& V
1 G! d+ v/ i5 O( ?) s! N; `2 G

uhr03u524kk64012763729.jpg

uhr03u524kk64012763729.jpg

( e$ m+ R( c! @3 m* i语法一:( q4 ]% Y2 G4 v
- h; z; b0 {5 T
一起来看看以下这段代码,在这段代码里面,我们 使用  和 %> 来替代 { 和 }使用  和 :> 来替代 [ 和 ]
  • /*使用  来替代 { 和 },例如:函数定义:int main(void)
    * l0 J/ x2 B1 F+ z1 b& H& ^使用  来替代 [ 和 ],例如:数组定义:int array*/int main(void)    int array = 11, 22, 33, 44, 55%>;) E2 ^4 z, a* }4 N8 q$ o
        printf(" >>> %d \r
    ; p  V+ f/ c/ E& p", array[3:>);    printf(" >>> %d \r
    % Q) c' ^7 Q. Z) `", array4]);5 Z) O( }7 s+ s9 M0 D
        return 0;%>: U: M0 U- U! |- W
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    ; M$ D1 A) f4 c# @( [# G  J2 z) o4 r$ L
    3 r0 x* D& t! ?/ n1 i+ h% O: A; ]  v

    x5ahgoemj5c64012763829.jpg

    x5ahgoemj5c64012763829.jpg
    , l& b& t- C' \* S9 f# H

    9 b; j5 A' p% K5 A) N! u- k之所以能编译成功,是因为在早期的 IBM 键盘里,是没有中括号 [ ] 和 大括号 { } 的,但因为 IBM 公司在当时的计算机产业里面,有着举足轻重的地位,$ I+ }8 ~% E: ]
    % @7 d8 x6 c8 ?3 g: X: }
    所以,C 语言为了兼容早期的 IBM 键盘,可以使用其他的的组合符号来替代中括号和大括号,并且把这种替代方式保留到现在。
    ; ~. Y% h* W9 v# Q6 y$ d  W" Q* y5 a; e& B, j6 \9 f
    语法二:
    1 w3 J  T& n; o+ H% d" g
    ( I. c) Z. t) ~& ^8 w$ K/ d再一起看看以下代码,介绍一种不常用的 C 语言数组成员访问方法,把成员索引号放在数组名前面,并且把数组名放在中括号里面(还用了特殊符号代替中括号),跟常用的 array[3] 访问方式,有很大的区别。
  • #include "stdio.h"
    ' a6 K6 [! c/ m5 w& Z6 {" h  Kint main(void){    int array[5] = {11, 22, 33, 44, 55};4 ]# b' y" I6 v+ o# w" X% |: R
        //常用的 C 语言数组成员访问方法    printf(">>> %d \r
    * T& `1 V# ~% r+ @; D/ N", array[3]);
    2 @7 T- O" m7 @4 J: `% O    //不经常用到的 C 语言数组成员访问方法    printf(">>> %d \r
      ]# s( G! C0 i7 K: C! p* r", 2[array:>);}
    / T  n( Y+ Q* G+ s/ D6 m上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    ) \: Q) v1 i+ u
    : `+ m- \4 H8 ]) Y; f

    rdjekanhykr64012763929.jpg

    rdjekanhykr64012763929.jpg
    * d7 B. ^3 O% F& i+ K* U
    以上两种不常见的 C 语言语法,建议别在工程项目里面使用,一旦使用,大概率会被接手代码的人直接问候,不信的话,试试?~8 m& B5 ~7 R, z' h9 K

    osp0xjoz4vuExpression_14@2x12764029.png

    osp0xjoz4vuExpression_14@2x12764029.png

    - Q1 _: H! m6 r; p) D. O; B' E
    * f1 v4 X7 N9 N/ Q-END-
    1 I5 K' S( P& P# \往期推荐:点击图片即可跳转阅读" {0 \* P1 Q& W" m% \0 T
                                                           
    : y5 n2 q: n/ M$ c                                                               
    / W3 C& {1 ?. Q! K# q                                                                       
    . Q+ L" M# E8 D. r/ `+ c$ c7 s# E                                                                                2 f: D* P& e* R6 M! R0 b& h& ^

    xvmbaf2nluu64012764129.jpg

    xvmbaf2nluu64012764129.jpg

    - c; G2 _5 J# V4 R' I" f                                                                                - k) M7 _5 J+ I. J+ ^" G  S. r
                                                                                            嵌入式 C 语言,那些“花里胡哨”的语法特性。
    9 M) [: `  V: q" t! c% s& l% N                                                        * p/ F( w3 p, K' F; N' N! t
                                                                   
    ; {1 V8 C3 M* r9 E                                                                       
    / I. l3 x9 C' }% e9 n& x' x# Y                                                                                ; v" |7 Z( B* V, \1 f7 y

    1ofp5ndlg4r64012764229.jpg

    1ofp5ndlg4r64012764229.jpg

    # C2 {- ?, A6 U' g7 x+ u. ^$ J$ c                                                                                , E+ D) {( X3 t0 {2 @5 J# M& X( ]
                                                                                            嵌入式 C 语言的自我修养
    ) H0 u: K  g( u/ j! _& h                                                               
    7 B# {: |' W- {                                                                       
    ; G# ]. J  e! C                                                                                + b! I$ ?6 O+ w% p

    4xvuoq3yknb64012764329.jpg

    4xvuoq3yknb64012764329.jpg

    ; |- x3 ]; `' @0 G                                                                                : T. T: u- z7 p/ X- X# w3 r
                                                                                            嵌入式 C 语言知识点,动态变长数组
    . ~$ B7 ~4 n; [4 j& L4 F6 R- ?                                                                               
      g) }% W6 l5 b2 J# t% Z# b( p                                                                        # l2 n( f( a& j5 w1 ~. ]$ P: ]
                                                                   
    5 N2 n/ }- f- H# W  [3 J                                                        我是老温,一名热爱学习的嵌入式工程师
    " q3 b  ~8 k4 j7 J) U0 W8 ^! H关注我,一起变得更加优秀!
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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