参数类型和数字检查c

时间:2013-04-09 10:14:40

标签: c function parameters

我希望添加一个检查,以确保始终使用正确数量的参数调用以下函数,并确保它们的类型正确。解决这个问题的最佳方法是什么?

e.g。

int differance(int *a, int *b)
{
 //Work out difference
}

由于

2 个答案:

答案 0 :(得分:3)

编译器会为你做这件事。

如果将一个函数声明为带两个参数,则不能使用更少或更多的参数调用它,否则会出错。

如果你试图将指针传递给int之外的其他东西,那么编译器至少会警告你,甚至可能会给你一个错误。

答案 1 :(得分:3)

确保函数调用符合函数定义:

  • 对于在单个源文件中定义和使用的函数,请在使用函数之前声明或定义函数。
  • 对于在多个源文件中定义和使用的函数,在头文件中声明函数(名称以.h结尾)并使用#include将该头文件包含在定义或使用该函数的每个源文件中。 #include应该在函数的任何定义或使用之前。
  • 检查您的编译器设置,并确保为缺少的函数原型和不匹配的函数原型打开警告。
  • 如果您的编译器有此类警告,请打开危险隐式转换的警告。
  • 如果可以避免参数,请不要将参数声明为“void *”。通常,您希望保留类型信息,以便编译器可以检查它。