电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

485

主题

485

帖子

1623

积分

三级会员

Rank: 3Rank: 3

积分
1623
发表于 2024-8-24 17:50:00 | 显示全部楼层 |阅读模式
我是老温,一名热爱学习的嵌入式工程师' l2 i: x) i: j1 f9 ]) e; [' |
关注我,一起变得更加优秀!
, B* V* G& g3 n/ b
; q6 {; R7 O0 `9 i& o

rp1x3kl5ba46401495848.jpg

rp1x3kl5ba46401495848.jpg

' }7 z4 x6 u; Y/ z  t9 y$ z% k语法一:
( W9 J; W2 E3 T. U# L7 C! f( ^6 n, W0 `0 ^0 L8 Q  |
一起来看看以下这段代码,在这段代码里面,我们 使用  和 %> 来替代 { 和 }使用  和 :> 来替代 [ 和 ]
  • /*使用  来替代 { 和 },例如:函数定义:int main(void)
    2 O% b: P/ z: T; X使用  来替代 [ 和 ],例如:数组定义:int array*/int main(void)    int array = 11, 22, 33, 44, 55%>;* Q7 L) ]  H7 Q5 B% G5 `
        printf(" >>> %d \r- q% i$ T+ [9 \! K0 a. ]) m6 w$ w
    ", array[3:>);    printf(" >>> %d \r
    3 E' e8 S; P& l6 Y+ ~1 e+ E1 T", array4]);
      ^3 @2 \6 Q5 W) H5 ~+ Y) }    return 0;%>
    ; W4 P* {- o2 K0 |2 B) \8 H% J6 I上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。+ X7 A; O/ ?1 v* g7 f1 C( p

    # P' @1 }9 H5 w# [, z; U8 Z

    2k41qymstwe6401495948.jpg

    2k41qymstwe6401495948.jpg
    - E2 r4 p' p6 B" G2 p+ ?% \% q

    5 j' z/ u4 `7 a8 A4 b% u- r之所以能编译成功,是因为在早期的 IBM 键盘里,是没有中括号 [ ] 和 大括号 { } 的,但因为 IBM 公司在当时的计算机产业里面,有着举足轻重的地位,2 O$ ^, `& j! b6 T, h; N

    - O& }+ q5 X. M6 h# P. s4 G$ k; v所以,C 语言为了兼容早期的 IBM 键盘,可以使用其他的的组合符号来替代中括号和大括号,并且把这种替代方式保留到现在。- a! F" P  i! y  |

    ! U+ _- `1 p& k& Z, y语法二:& F% X% z1 M' w) f
    4 S( h- p/ ~/ \  _
    再一起看看以下代码,介绍一种不常用的 C 语言数组成员访问方法,把成员索引号放在数组名前面,并且把数组名放在中括号里面(还用了特殊符号代替中括号),跟常用的 array[3] 访问方式,有很大的区别。
  • #include "stdio.h"
    6 M/ Z; A/ S6 A. A2 oint main(void){    int array[5] = {11, 22, 33, 44, 55};
    9 A( Q; E' ~3 s* e! I, K% B4 F# }    //常用的 C 语言数组成员访问方法    printf(">>> %d \r
    : }# C9 b8 q( L* d4 Y, S& b", array[3]);
    + K) ^# J) a- {9 q# `* g    //不经常用到的 C 语言数组成员访问方法    printf(">>> %d \r! K6 Z- h+ _, U) e4 i2 V' g' F
    ", 2[array:>);}% F/ s7 Q+ p% @: I# x8 e! G! D8 U
    上面的代码编译可以编译成功,并且能够正确运行输出结果,如下图所示。
    0 g* D7 r' w; i1 h8 p# [5 o0 m2 o0 t5 J6 {/ {( ~8 [8 t

    3jphhdsuim46401496048.jpg

    3jphhdsuim46401496048.jpg
    1 Z) `3 i# v/ N8 v" S8 ^2 q
    以上两种不常见的 C 语言语法,建议别在工程项目里面使用,一旦使用,大概率会被接手代码的人直接问候,不信的话,试试?~6 N6 h6 z# S( S: b/ r, {

    1ypeobs3cxkExpression_14@2x1496148.png

    1ypeobs3cxkExpression_14@2x1496148.png
    ( w4 D* J9 A* N' D: p
    % R  ^1 r; X7 N) l3 ]0 v- p; v
    -END-
    2 g$ s6 z+ F$ K往期推荐:点击图片即可跳转阅读$ \* e3 |$ V2 y; w
                                                           
    - K9 }5 R* Y# A" o5 o                                                                * h& F9 {% ?' h$ H1 a
                                                                            9 S+ X! J: M1 B
                                                                                    9 U2 l! h, I/ [" `3 H+ B

    fcdpmax5fqo6401496248.jpg

    fcdpmax5fqo6401496248.jpg
    3 Z, O& e, |8 Q3 P# `) Z
                                                                                   
    4 I: Z0 q, h1 S, [# q! i" @/ ]5 y8 E                                                                                        嵌入式 C 语言,那些“花里胡哨”的语法特性。+ e! M+ P, |3 A( \
                                                            6 f2 O! @! B- m$ v3 m* i$ \
                                                                    6 Y! S0 v" w; M# n/ Z+ i. R
                                                                           
    % q6 A. [* C- \8 a8 I; a5 {                                                                               
      n2 F$ Q4 u* J+ n

    ri5r1jrazlj6401496348.jpg

    ri5r1jrazlj6401496348.jpg
    % f7 }6 _3 W) D1 E6 a0 D! `, r
                                                                                   
    3 x' E7 S3 Q" n6 |3 k" \  F: C2 a                                                                                        嵌入式 C 语言的自我修养8 x2 H/ F, O" O
                                                                   
    5 s$ e, S0 U" U# k$ _0 w                                                                       
    0 ^3 c& ]; Z8 b$ @# T: K$ J                                                                               
    9 I  x6 `4 Q6 @

    g2yxrn2kgs56401496448.jpg

    g2yxrn2kgs56401496448.jpg
    % N0 ]' Z7 |7 ]: _
                                                                                   
    ' H. y' c0 b) J0 Q                                                                                        嵌入式 C 语言知识点,动态变长数组
    9 ?. p2 h4 z  Y                                                                                4 J6 o* ~- d- T4 C& h6 g
                                                                           
    + L& M' F  `' m6 M5 T0 W3 z                                                               
    ; `* D% u7 N  r9 X& G                                                        我是老温,一名热爱学习的嵌入式工程师
    - ?) c! H4 O; ?, Y  l关注我,一起变得更加优秀!
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则


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