1

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

例如

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

谢谢

4

2 回答 2

3

编译器会为你做这件事。

如果你声明一个函数有两个参数,你不能用更少或更多的参数调用它,否则你会得到一个错误。

如果您尝试将指针传递给 an 以外的其他内容,int那么编译器至少会警告您,甚至可能给您一个错误。

于 2013-04-09T10:19:56.683 回答
3

为确保您的函数调用与您的函数定义匹配:

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