minus用法c语言,Minus-C 一个最小化的C语言规范

资深C++程序员都不会对C++编程规范太陌生,C++实在太复杂,以至于所有项目都需要裁剪一个子集共项目组内使用。

经过在家休息这一小段时间,我发现其实C语言更需要一个相同的规范,这就是本文的目标,最大可能规避C语言的黑暗面。

大体上分成这几个部分

1.语言标准和编译器

如果我说出建议使用C99和GCC是不是有很多人长叹一口气,不过C99事实只用到了很少一点特性,大部分编译器都支持,

比如说//注释。选择GCC是因为它广范的可获得性和一致性,而主要以GCC做为一个验证标准来看待。

2.文件格式

这部分只要求两点,一是包含基准头文件,stdc99.h。C语言的头文件实在不标准。二是使用前注释,而不是行注释和后注释。

3.数据类型选择

只选用char, unsigned char, int, double这几个基本类型,64位系统程序中应该还要增加一个long long。

不使用typedef的结构体和指针,即结构体都有前缀struct。

不使用共用体

不使用enum类型,但使用enum来定义常量。

数组类型,需要要特别说明,不强制使用。

4.函数使用

一般不使用malloc

5.表达式

接受使用+,-,*,/

除提领‘*’外,不接受++与其它运算符同时出现。

不使用&,|,^,~,<>,见后面“位操作”

不使用?:

不使用","逗号表达式,但接受在声明和函数参数中使用。

6.位操作

使用以下函数形式的宏,完成位操作。

待续未完

原文:http://www.cnblogs.com/ahuangliang/p/3548573.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的词法分析器的示例代码,它可以识别整数、加号、减号和乘号等基本运算符: ```c #include <stdio.h> #include <ctype.h> typedef enum { TOKEN_INTEGER, TOKEN_PLUS, TOKEN_MINUS, TOKEN_MULTIPLY, TOKEN_EOF } TokenType; typedef struct { TokenType type; int value; } Token; Token nextToken() { Token token; int c = getchar(); while (isspace(c)) { c = getchar(); } if (isdigit(c)) { token.type = TOKEN_INTEGER; token.value = 0; while (isdigit(c)) { token.value = token.value * 10 + c - '0'; c = getchar(); } ungetc(c, stdin); } else if (c == '+') { token.type = TOKEN_PLUS; } else if (c == '-') { token.type = TOKEN_MINUS; } else if (c == '*') { token.type = TOKEN_MULTIPLY; } else if (c == EOF) { token.type = TOKEN_EOF; } else { printf("Unknown token: %c\n", c); token.type = TOKEN_EOF; } return token; } int main() { Token token; do { token = nextToken(); switch (token.type) { case TOKEN_INTEGER: printf("INTEGER: %d\n", token.value); break; case TOKEN_PLUS: printf("PLUS\n"); break; case TOKEN_MINUS: printf("MINUS\n"); break; case TOKEN_MULTIPLY: printf("MULTIPLY\n"); break; case TOKEN_EOF: printf("EOF\n"); break; } } while (token.type != TOKEN_EOF); return 0; } ``` 在上面的代码中,我们定义了一个 `TokenType` 枚举,表示不同的令牌类型。然后我们定义了一个 `Token` 结构体,包含令牌的类型和值。函数 `nextToken()` 用来读取下一个令牌,它会忽略空格并识别数字和运算符。最后,我们在主函数中循环调用 `nextToken()` 直到遇到文件结尾。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值