标签: function-declaration

内联函数原型与常规声明与原型

内联函数和main之间有什么区别,如下所示:

inline double cube(double side)
{
   return side * side * side;
}

int main( )
{
    cube(5);
}
Run Code Online (Sandbox Code Playgroud)

vs只是定期声明一个函数:

double cube(double side)
{
   return side * side * side;
}

int main( )
{
    cube(5);
}
Run Code Online (Sandbox Code Playgroud)

vs功能原型?

double cube(double);

int main( )
{
    cube(5);
}

double cube(double side)
{
   return side * side * side;
}
Run Code Online (Sandbox Code Playgroud)

c++ inline-functions function-prototypes function-declaration

3
推荐指数
1
解决办法
4567
查看次数

解释这些函数指针声明的区别

请突出显示以下函数声明之间的区别:

  1. void (*p) (void *a[], int n)

  2. void *(*p[]) (void *a, int n)

c function-pointers function-declaration

3
推荐指数
2
解决办法
175
查看次数

虚函数关键字在函数声明中的位置

是否将virtual关键字放在返回值类型之前或之后的函数声明中是否有任何区别?

virtual void DoSomething() = 0;
void virtual DoSomething() = 0;
Run Code Online (Sandbox Code Playgroud)

void virtual在重构一些遗留代码的同时找到了语法,并且想知道它正在编译...

c++ virtual keyword function-declaration

3
推荐指数
1
解决办法
370
查看次数

在定义之前立即声明函数的原因?

所以在这个又一个古老的C++代码库中,我经常发现这种风格:

// ...

void FooBar::Eggs(int spam);
void FooBar::Eggs(int spam) {
    // implementation here
    // ...
}
Run Code Online (Sandbox Code Playgroud)

一般来说,我确实理解在C++中声明一个函数的重点是什么,但是我找不到任何理由来进行这种复制.有没有理由消除它?

c++ coding-style function-declaration

3
推荐指数
1
解决办法
111
查看次数

清洁代码中的降压规则

在清洁代码(第3章,每个功能的一个抽象级别)中有一些关于Stepdown Rule(顶级和低级别的高级功能)的内容.
我使用coffeescript时应该怎么做,因为coffeescript中没有函数声明.

例:

 seeAMovie = ()->
     BuyTheTicket()
     watch()

 BuyTheTicket = ()->
     //some thing

 watch = () ->
     //some thing
Run Code Online (Sandbox Code Playgroud)

我想这样做.

coding-style function-declaration coffeescript

3
推荐指数
1
解决办法
3262
查看次数

与theano有奇怪的语法错误

我正在尝试在python 3.4中使用我的代码中的theano.但是,有许多功能具有以下奇怪的语法

def c_code(self, node, name, (var1, var2), (var3,), sub):
...
Run Code Online (Sandbox Code Playgroud)

即它们在函数定义中有括号.

Python会对它们抛出语法错误

文件".../Theano-0.7.0/theano/scalar/basic.py",第1011行
def c_code(self,node,name,(var1,var2),(var3,),sub):
^ SyntaxError:invalid句法

现在,一旦我删除那些额外的括号,一切都很好,但我是python的新手,并注意到python 3中有很多变化,所以这些括号可能需要用其他东西替换而不是删除.

有人可以向我解释(a)函数定义中包含括号的含义是什么?(b)这些是否以及如何与python 3一起使用?

python syntax function-declaration

3
推荐指数
1
解决办法
177
查看次数

列出Python函数定义中的构建

我想建立一个原型:

def foo(a,t=([0]*len(a))):
  print t
Run Code Online (Sandbox Code Playgroud)

由于目前不重要的原因.我传入的是可变长度列表参数.但是,Linux上的Python 2.7.10总是返回如下:

>>> a = [1,2,3,4]
>>> foo(a)
[O, 0]
Run Code Online (Sandbox Code Playgroud)

没有函数调用,这些都不会以意外的方式运行.是什么导致Python总是认为在foo()中的变量赋值期间传递的列表是长度为2?

python kwargs function-declaration python-2.7

3
推荐指数
1
解决办法
51
查看次数

奇怪的C函数声明

当我在其中一个源文件中遇到这个时,我正在浏览一些代码.

int st_insert(table, key, value)
register st_table *table;
register st_data_t key;
st_data_t value;
{
    unsigned int hash_val, bin_pos;
    register st_table_entry *ptr;

    hash_val = do_hash(key, table);
    FIND_ENTRY(table, ptr, hash_val, bin_pos);

    if (ptr == 0) {
        ADD_DIRECT(table, key, value, hash_val, bin_pos);
        return 0;
    } else {
        ptr->record = value;
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

这种风格是什么?这是一种声明函数的模糊方法吗?有没有什么理由可以使用它而不是正常的函数声明?

c function-declaration

3
推荐指数
1
解决办法
421
查看次数

源缺少函数体,它是如何编译的?

在 Go lang 源代码中,我看到一个没有任何主体声明的函数。 https://github.com/golang/go/blob/master/src/math/log10.go#L9

func Log10(x float64) float64
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,它给了我一个错误:缺少 __ 的函数体

https://play.golang.org/p/Ncp-0-8vHB

这在 Go 源代码中是如何工作的?我的意思是数学包是如何编译的?此源文件仅用于文档目的吗?

似乎 Log10 是 log10 的公共/公开版本,但是语言中没有“getter”约定或类似的东西,那么 Log10 的主体在哪里声明???

compiler-errors compilation go function-declaration

3
推荐指数
1
解决办法
1850
查看次数

Dart - 将函数声明为变量

在 Dart 中 - 与许多其他语言一样 - 声明函数的方法不止一种。问题是,是否存在任何差异,即“我什么时候应该使用哪个”?

void foo(int i) {
  print('i = $i');
}

void main() {
  void Function(int) bar = (int j) {
    print('j = $j');
  };

  foo(1);
  bar(2);
}
Run Code Online (Sandbox Code Playgroud)

除了可以被覆盖的事实之外,声明foobar其他方面有什么区别吗?bar

variables function function-declaration dart

3
推荐指数
1
解决办法
2645
查看次数