之前看ruby hacking guide的时候,经常看到c文件中出现很奇怪的写法,当时是感觉可能自己的c水平有限,看不懂其中的原理,故而没有继续看下去。今天又看到了类似的写法,突然有一种冲动,一定要把它弄懂。结果,其实很简单。。。。
之前看到这样的代码,我一直很纳闷,为什么这样写:
VALUE
rb_str_new(ptr, len)
const char *ptr;
long len;
{
return str_new(rb_cString, ptr, len);
}
这种写法是正确的么,为什么参数的类型可以写在函数的外边?
是我少见多怪了,今天写了一段类似的代码,结果是能正常运行的,当然用的gcc编译的,在vc上会报错(应该是可以设置的,但是我还不知道怎么弄)。
#include<stdio.h>
int add(int,int);
int main(){
printf("%d",add(3,4));
return 0;
}
int add(a,b)
int a;
int b;
{
return a+b;
}
返回的结果是:
现在终于解开了我心中的疑惑。当然还有很多东西需要挖掘

- 大小: 14 KB
分享到:
相关推荐
例如,参数列表的格式错误或参数个数错误都会导致这种错误。 4. Array bounds missing 丢失数组界限符 在C语言中,数组的界限符可能会导致语法错误。例如,数组的下标越界或数组的长度错误都会导致这种错误。 5. ...
宏定义的格式通常是由`#define`开始,后接宏名,如果宏需要参数,可以在宏名后加括号包含参数列表。宏定义不以分号结束。例如: ```c #define PI 3.14159 #define SQUARE(x) ((x)*(x)) ``` 使用宏时,预处理器会...
同时,通过对比不同套卷的题目,可以发现考试的重点和常见陷阱,比如可能会反复考察某个知识点,或者设置迷惑选项来测试对概念的深入理解。 综上所述,C语言期末考试题的复习不仅需要扎实掌握基础知识,还需要通过...
迷惑你的地方If 是可以做为用户标识符,因为If 中的第一个字母大写了,所以不是关键字。 实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。考试口诀:e 前e 后必有数,e 后必为整数。 字符数据的...
在计算机系统中,文件系统是管理数据存储的...即使面对看似复杂的题目,也不要被表面的难度所迷惑,因为有时可能只是题目的表述或示例代码存在错误。因此,深入理解每一个概念,相信自己的能力,是解决此类问题的关键。