我是老温,一名热爱学习的嵌入式工程师
) 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
/ 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
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
+ X6 }* x3 t- W$ L7 ^& b以上两种不常见的 C 语言语法,建议别在工程项目里面使用,一旦使用,大概率会被接手代码的人直接问候,不信的话,试试?~- W1 E' O R. g" B- _
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
; 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
) ]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
& 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
关注我,一起变得更加优秀! |