由买买提看人间百态

topics

全部话题 - 话题: 函数调用
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
y**b
发帖数: 10166
1
来自主题: Programming版 - 类成员函数调用其它函数
其它函数只会被这个成员函数调用,所以设置成嵌套函数比较合理,
但C++并不支持嵌套函数吧?有没有比较好的方式呢,不想把这个
其它函数设置成同成员函数一个级别。
s**********4
发帖数: 3
2
来自主题: JobHunting版 - 问一个java的函数调用问题
会写c++,只是拿leetcode一个例子来问一下java的函数调用问题:
比如说我现在创建了两个文件:Solution.java和SolutionTest.java:
Solution.java:
public class Solution {
public int maxProfit(int[] prices) {
// Start typing your Java solution below
// DO NOT write main() function
if (prices.length < 2)
return 0;
int maxDiff = 0;
int minValue = prices[0];
for (int i = 1; i < prices.length; ++i) {
if (prices[i] < minValue)
minValue = prices[i];
... 阅读全帖
b***y
发帖数: 2799
3
☆─────────────────────────────────────☆
wmbyhh (wmbyhh) 于 (Wed Mar 12 16:46:55 2008) 提到:
请问是不是所有编程语言的函数调用,Matlab/C++/Java/Delphi都是传递形参?
而非实参?就是说传递的参数只传递值,其参数本身不改变?
包含Matlab?
☆─────────────────────────────────────☆
vvs (vvs1991) 于 (Wed Mar 12 17:28:22 2008) 提到:
C++ 如果加了reference,就把自己给传进去了,你就可以改变它。java好像永远是传
值,不过因为对象是reference,所以,传进去的obj都是可以乱改的。
☆─────────────────────────────────────☆
PaulPierce (Paul) 于 (Wed Mar 12 21:01:46 2008) 提到:
java is pass by value, don't get messed

☆──────
w******t
发帖数: 241
4
【 以下文字转载自 CS 讨论区 】
发信人: webcraft (此处不留爷,自有留爷处;处处不留爷,爷, 信区: CS
标 题: 请教一个程序调用的内存问题
发信站: BBS 未名空间站 (Sat Sep 8 11:10:10 2007)
我现在在做一个嵌入式系统的程序,其中一个中断会调用一function A,然后function
A又会调用function B,function B 调用C, 一直这样有6个嵌套的调用,我想请问一
下这样函数是不是会不停地在stack上面开销内存(包括函数本身以及函数内申明的局
部变量),这些内存会一直被占用到函数调用结束。像这样地情况,有没有更好的程序
架构能够避免这样的问题。
另外还有一个问题想请教,如果我在某个子函数中申明了指针,并且用malloc开了内存
空间,函数完结的时候free了空间,想请问一下函数调用结束返回之后,这个指针是不
是被自动设置为NULL(我想是这样,因为这个指针是局部变量)?谢谢大家
w******t
发帖数: 241
5
【 以下文字转载自 CS 讨论区 】
发信人: webcraft (此处不留爷,自有留爷处;处处不留爷,爷, 信区: CS
标 题: 请教一个程序调用的内存问题
发信站: BBS 未名空间站 (Sat Sep 8 11:10:10 2007)
我现在在做一个嵌入式系统的程序,其中一个中断会调用一function A,然后function
A又会调用function B,function B 调用C, 一直这样有6个嵌套的调用,我想请问一
下这样函数是不是会不停地在stack上面开销内存(包括函数本身以及函数内申明的局
部变量),这些内存会一直被占用到函数调用结束。像这样地情况,有没有更好的程序
架构能够避免这样的问题。
另外还有一个问题想请教,如果我在某个子函数中申明了指针,并且用malloc开了内存
空间,函数完结的时候free了空间,想请问一下函数调用结束返回之后,这个指针是不
是被自动设置为NULL(我想是这样,因为这个指针是局部变量)?谢谢大家
X*4
发帖数: 101
6
来自主题: Programming版 - 这个dtor为啥能被调用呢
关于boost shared_ptr的,
#include
#include
#include
class A{
public:
virtual void sing() = 0;
protected:
virtual ~A(){
std::cout << "dtor of base" << std::endl;
}
};
class B: public A{
public:
virtual void sing()
{
std::cout << "DO re mi fa so la" << std::endl;
}
~B(){
std::cout << "Dtor of Derived " << std::endl;
}
};
boost::shared_ptr create(){
boost::shared_ptr
p(new B());
...
阅读全帖
n********r
发帖数: 65
7
来自主题: Programming版 - 请教c++ 类 内外的 同名函数问题
比如一个类A,有私有函数 f(),
两个public的函数 a(), b(),
a() 调用 类A中的私有函数f();
b() 调用 外部的一个函数也叫 f();
两个函数在参数类型上没有差别,
该如何做,我发现在类A内的函数调用 f()
时总是调用的类内的那个 f();
p*****c
发帖数: 20
8
来自主题: Programming版 - 请教c++里函数调用的问题
我在头文件里声明了函数
bool cal_sum(int num,int &elem)
然后我另外写了一个文件是这个函数的主体 cal.cpp
在主函数文件里我include head.h 后,为什么还是link不到cal这个文件?
如果我在主函数里直接用 include cal.cpp,甚至都不需要头文件了。
请问如果用头文件的方式应该怎样调用那个外部函数 ? 直接include cal.cpp是合理
的做法吗?
I*****y
发帖数: 602
9
可以让C/C++的推出函数调用你的ExitProgram()函数,我记不清出啦。
有一个内部函数可以注册你自己的退出函数。
M********g
发帖数: 183
10
来自主题: Computation版 - 问个matlab里调用自定义函数的问题
没用过fminunc,不过你再定义一个函数调用xxx只返回out2不行吗?
这个难道还要找什么elegant的方法?
b***k
发帖数: 2673
11
☆─────────────────────────────────────☆
trenchant (N/A) 于 (Wed Oct 17 16:19:38 2007) 提到:
A, B, C三个类的构造函数被调用的顺序?
class C
{
....
};
class A
{
...
}
class B :public A
{
C c_member;
}
void main()
{
B b_member;
}
☆─────────────────────────────────────☆
shide (Sunny Shide) 于 (Wed Oct 17 18:21:50 2007) 提到:
我从来不认真考虑这种问题的,真想知道的时候写个最简单的程序步进调试就行了....
..
☆─────────────────────────────────────☆
everforget (yy) 于 (Wed Oct 17 18:36:15 2007) 提到:
A,B,C
☆─────────────────────────────────────☆
tr
n****t
发帖数: 27
12
char *testvar;
void myfunction(char fname[])
{
char *temp;
temp = testvar;
temp = "a";
}
我想实现的是在这个函数里给temp赋一个值,然后传到testvar(定义在函数之外)。但
是我发现在这个函数里我改变不了testvar的值。有人遇到个这种问题吗?谢谢。
p*****c
发帖数: 20
13
来自主题: Programming版 - 请教c++里函数调用的问题
我用的是DevC++.同时打开主函数main.cpp和函数文件cal_sum.cpp,编译主函数的时候
出现undefined reference 错误。
s**********p
发帖数: 24
14
来自主题: Computation版 - Matlab 的积分函数中的函数调用问题
初学者请教一个Matlab积分函数的使用问题:
x =[12, 23, 45, 67, 45] {这里是一维数组x(1), x(2)...}
H =100;
mgh = quad(@(z)lightet, -H, 0, [], [], x)
其中 是lightet一个子函数:
function lightet(z, x);
a1=.5; a2=26.5;
I0=118.6;
k=a1+a2*(x(1)+x(2));
y=I0*exp(-k*z)
end
就是想以z为变量(-h -> 0)去积分 y = I0*exp(-k*(z))
运行积分那一行(mgh)结果老是出现: "too many input arguments"
请问matlab高手,这是怎么回事?怎么改?
Thanx!
l********a
发帖数: 1154
15
传入外部变量指针即可
char *testvar;
void myfunction(char *gVar)
{
char *temp;
temp = "a";
gVar = temp;
}
调用
myfunction(testvar);
q**********n
发帖数: 262
16
vs express 能给出函数调用关系图?
r****o
发帖数: 1950
17
如果有很多function定义在不同的文件中,
有没有什么软件可以静态显示出这些function之间的调用关系?
l*******h
发帖数: 3
18
来自主题: Programming版 - C/C++函数调用和栈内存
这几天学C语言学晕了,都因是看内存管理变量分配的问题.现在看RETURN语句都不顺眼.
比如下面第一个CODE,因为B指针指向栈内存,离开fun2()就失效,所以返回main()的结果
不正确.
int *fun2(void)
{
int b=2;
return &b;
}
main()
{
int *b1=fun2();
printf(“%\n”, *b1);
}
那下面的CODE就对了吗? 变量b在fun1()子程序里不也是在栈内存吗?它离开fun1()子程
序不也无效了吗?怎能指望返回MAIN正确的值呢? RETURN 这个命令是怎么和把什么返回
主函数的?
int fun1(void)
{
int b=2;
return b;
}
main()
{
int b1=fun1();
printf(“%\n”, b1);
}
S**I
发帖数: 15689
19
本来就是允许的;至于你的代码,那个函数调用既然没有影响,编译器可能直接把它优
化掉了。
f********a
发帖数: 1109
20
【 以下文字转载自 Programming 讨论区 】
发信人: ozin (ozin), 信区: Programming
标 题: 王银看kotlin(本文建议零售价 ¥15)
发信站: BBS 未名空间站 (Thu May 25 18:06:39 2017, 美东)
Kotlin 和 Checked Exception
最近 JetBrains 的 Kotlin 语言忽然成了热门话题。国内小编们传言说,Kotlin 取代
了 Java,成为了 Android 的“钦定语言”,很多人听了之后热血沸腾。初学者们也开
始注意到 Kotlin,问出各种“傻问题”,很“功利”的问题,比如“现在学 Kotlin
是不是太早了一点?” 结果引起一些 Kotlin 老鸟们的鄙视。当然也有人来信,请求
我评价 Kotlin。
对于这种评价语言的请求,我一般都不予理睬的。作为一个专业的语言研究者,我的职
责不应该是去评价别人设计的语言。然而浏览了 Kotlin 的文档之后,我发现 Kotlin
的设计者误解了一个重要的问题——关于是否需要 checked exception。对于这个话题
我已经思考... 阅读全帖
o**n
发帖数: 2130
21
Kotlin 和 Checked Exception
最近 JetBrains 的 Kotlin 语言忽然成了热门话题。国内小编们传言说,Kotlin 取代
了 Java,成为了 Android 的“钦定语言”,很多人听了之后热血沸腾。初学者们也开
始注意到 Kotlin,问出各种“傻问题”,很“功利”的问题,比如“现在学 Kotlin
是不是太早了一点?” 结果引起一些 Kotlin 老鸟们的鄙视。当然也有人来信,请求
我评价 Kotlin。
对于这种评价语言的请求,我一般都不予理睬的。作为一个专业的语言研究者,我的职
责不应该是去评价别人设计的语言。然而浏览了 Kotlin 的文档之后,我发现 Kotlin
的设计者误解了一个重要的问题——关于是否需要 checked exception。对于这个话题
我已经思考了很久,觉得有必要分享一下我对此的看法,避免误解的传播,所以我还是
决定写一篇文章。
可以说我这篇文章针对的是 checked exception,而不是 Kotlin,因为同样的问题也
存在于 C# 和其它一些语言。
冷静一下
在进入主题之前,我想先纠正一些人的误解,让他... 阅读全帖
h*h
发帖数: 27852
22
来自主题: Programming版 - 王垠: 编程的宗派
http://www.yinwang.org/blog-cn/2015/04/03/paradigms
编程的宗派
总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙视。然后
呢又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问题的工
具就是好工具!我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点抽象
能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构,
structure),它本质其实是一个从名字到数据的“映射表”(map)。你可以用名字从
这个表里面提取相应的数据。比如point.x,就是用名字x从记录point里面提取相应的
数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即使你
插入了新的数据成... 阅读全帖
p*u
发帖数: 2454
23
来自主题: Programming版 - 编程的宗派
总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然现在出了两个帮派,就有人积极地做它们的帮众,互相唾骂和残杀。
然后呢,又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问
题的工具就是好工具!
我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点点抽
象能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构
,structure),它的本质就是一个从名字到数据的“映射表”(map)。你可以用名字
从这个表里面提取相应的数据。比如point.x,就是用名字'x'从记录point里面提取相
应的数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即
使你插入了新的数据成员,仍然可以用原来的名字来访问已有的数据,而不用担心下标
错位的问题。
所谓“对象思想”(区别于“面向... 阅读全帖
n**********2
发帖数: 648
24
【 以下文字转载自 Programming 讨论区 】
发信人: xykkkk (asdf), 信区: Programming
标 题: 老码农冒死揭开行业黑幕:如何编写无法维护的代码(zz)
发信站: BBS 未名空间站 (Fri Nov 28 13:28:27 2014, 美东)
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid... 阅读全帖
x****k
发帖数: 2932
25
如何编写无法维护的代码
让自己稳拿铁饭碗 ;-)
– Roedy Green(翻译版略有删节)
简介
永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无
能。 — 拿破仑
为了造福大众,在Java编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大
师写的代码极其难以维护,后继者就是想对它做最简单的修改都需要花上数年时间。而
且,如果你能对照秘籍潜心修炼,你甚至可以给自己弄个铁饭碗,因为除了你之外,没
人能维护你写的代码。再而且,如果你能练就秘籍中的全部招式,那么连你自己都无法
维护你的代码了!
(伯乐在线配图)
你不想练功过度走火入魔吧。那就不要让你的代码一眼看去就完全无法维护,只要它实
质上是那样就行了。否则,你的代码就有被重写或重构的风险!
总体原则
Quidquid latine dictum sit, altum sonatur.
(随便用拉丁文写点啥都会显得高大上。)
想挫败维护代码的程序员,你必须先明白他的思维方式。他接手了你的庞大程序,没有
时间把它全部读一遍,更别说理解它了。他无非是想快速找到修改代码的位置、改代码
、编译,然后就能交差,... 阅读全帖
g****g
发帖数: 1828
26
来自主题: Linux版 - awk
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎
之一。这种编程及数据操作语言(其名称得自于它的创始人 阿尔佛雷德·艾侯 、
Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所
拥有的知识。 AWK 提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、
流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语
言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言: AWK 程序设计语
言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程
序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,
还有无数其他的功能。gawk 是 AWK 的 GNU 版本。
最简单地说,AWK 是一种用于处理文本的编程语言工具。AWK 在很多方面类似于 Unix
shell 编程语言,尽管 AWK 具有完全属于其本身的语法。它的设计思想来源于
SNOBOL4 、sed 、Marc Rochkind设计的有效性语言、语言工具 y... 阅读全帖
z****e
发帖数: 2024
27
来自主题: Programming版 - C++ Q20: construction and inheritance
师傅,invoker这个类,根本就没有虚函数,这点我同意。
因为invoker就一个wrapper,就用B的this指针进行一个函数调用的作用。
标准的这句话,应该和invoker是没有关系的。因为虚函数和invoker无关,invoker也
没有调用自己的虚函数,因为根本就没有虚函数。
标准是说,在有虚函数的情况下,应该调用哪个。
invoker压根就没有虚函数,所以我感觉,标准这句话不能用在invoker上边。
实质上不是invoker在ctor里调用虚函数,本质上还是B在ctor里调用虚函数,应该调用
哪个。那B就之好按照顺序来了。

本.
s****r
发帖数: 31686
28
【 以下文字转载自 Computation 讨论区 】
发信人: halfy (蜕), 信区: Computation
标 题: C++,一个函数完成后出segmentaion fault
发信站: BBS 未名空间站 (Wed Nov 5 20:45:09 2008), 站内
发信人: halfy (蜕), 信区: Programming
标 题: C++,一个函数完成后出segmentaion fault
发信站: BBS 未名空间站 (Wed Nov 5 20:44:45 2008), 转信
调用某函数A,其中用系统命令调用其它程序作了计算
A末尾的确认信息可以输出,没问题
但是调用A之后的语句没运行之前出现segmentation fault
我尝试过在函数A中不调用其它程序做计算,把计算结果先准备好,调用命令
虚设了一个列目录的命令
这时候调用A之后一切正常,开始读A的结果 ...
或者,在函数A中调用另外一个其他程序作计算,也没有这个问题
邪了门了 ...
a**a
发帖数: 416
29
来自主题: Programming版 - 问一个简单的C++问题
非常不幸。编译器从来不会自动找.h文件。这是因为兼容古老的c带来的混淆。
在C的石器时代,函数无须声明就可以使用,编译器也不检查你的调用方式是否正确。
编译器唯一关注的是你的函数名。所以你写add(1,1)的时候,编译器假设你有个
地方提供了add这个函数,然后自动为你生成调用代码。至于子程序被调用后是否
能正确运行,或者调用者对被调用者的返回值的假设是否正确,编译器是不管的。
到了C的古典时代,为了在编译期间就能检查出调用方式类型的错误,编译器几乎
是强制性地要求程序员提供函数调用的参数类型和返回值类型。但是为了兼容
古老的石器代码,很多C编译器在不提供函数声明的情况下,会自动根据上下文
假定一个声明,并额外地警告一下。C++的编译器也沿袭了这一传统。所以你不包含
vector.h头文件的时候,第一个main仍然可以通过。但是第二个程序的TEST::main
完全是C++代码,不可能按照C习惯来解释,TEST即可以作名字空间解,也可以作
类名解,这两个都不可像函数那样用一个符号(其背后的实质是指针或者地址)来代替。
所以必须要有头文件。
简单地说,你的第一个程序是碰巧对了,第二个程序
h***y
发帖数: 2194
30
【 以下文字转载自 Programming 讨论区 】
发信人: halfy (蜕), 信区: Programming
标 题: C++,一个函数完成后出segmentaion fault
发信站: BBS 未名空间站 (Wed Nov 5 20:44:45 2008), 转信
调用某函数A,其中用系统命令调用其它程序作了计算
A末尾的确认信息可以输出,没问题
但是调用A之后的语句没运行之前出现segmentation fault
我尝试过在函数A中不调用其它程序做计算,把计算结果先准备好,调用命令
虚设了一个列目录的命令
这时候调用A之后一切正常,开始读A的结果 ...
或者,在函数A中调用另外一个其他程序作计算,也没有这个问题
邪了门了 ...
b***y
发帖数: 2799
31
☆─────────────────────────────────────☆
halfy (蜕) 于 (Wed Nov 5 20:44:45 2008) 提到:
调用某函数A,其中用系统命令调用其它程序作了计算
A末尾的确认信息可以输出,没问题
但是调用A之后的语句没运行之前出现segmentation fault
我尝试过在函数A中不调用其它程序做计算,把计算结果先准备好,调用命令
虚设了一个列目录的命令
这时候调用A之后一切正常,开始读A的结果 ...
或者,在函数A中调用另外一个其他程序作计算,也没有这个问题
邪了门了 ...
☆─────────────────────────────────────☆
seventies (seventies) 于 (Wed Nov 5 21:07:18 2008) 提到:
觉得应该是数组下标越界操作吧。

☆─────────────────────────────────────☆
halfy (
w****a
发帖数: 710
32
来自主题: JobHunting版 - 1小时前的G家onsite面经
背景:新鲜小硕,申的是2013北美new grads,SDE
地点:都柏林office
没签nda,直接放送了。坐等拒信,明年再来。
第一轮:
写一个bst的类,要求包含查找最小的节点的方法。并利用这个函数实现findNext()。
最后再写一个函数输出BST的inorder,非递归,用前面两个函数很容易写。
需要描述详细时空复杂度,最好情况最坏情况和平均情况。
第二轮:
第一题是isPow4。写了两种方法,查表法和循环法。分别解释时空复杂度。第二题是图
的最短路径。有障碍物。pow4他问的比较多,我还解释了INT_MAX是多少,long long一
开始他都没看懂。中间出了一点点小问题,但是改对了。因为我没考虑到1这个情况,4
的0次方是1。太粗心了。然后他让我别用hash_set,用普通方法做一个。我就写了个循
环的方法。循环的方法倒是一次性bug free了。pow4伺候完就开始第二题了。
最短路径那个时间不够了没做完。 不过没做完他倒是没说啥因为开始做这题的时候已
经就剩下10分钟了,他说没做完没事,讲下思路就行。我就没怎么花心思在code上,重
点讲了BFS,画了图给他描述了... 阅读全帖
w****a
发帖数: 710
33
来自主题: JobHunting版 - 1小时前的G家onsite面经
背景:新鲜小硕,申的是2013北美new grads,SDE
地点:都柏林office
没签nda,直接放送了。坐等拒信,明年再来。
第一轮:
写一个bst的类,要求包含查找最小的节点的方法。并利用这个函数实现findNext()。
最后再写一个函数输出BST的inorder,非递归,用前面两个函数很容易写。
需要描述详细时空复杂度,最好情况最坏情况和平均情况。
第二轮:
第一题是isPow4。写了两种方法,查表法和循环法。分别解释时空复杂度。第二题是图
的最短路径。有障碍物。pow4他问的比较多,我还解释了INT_MAX是多少,long long一
开始他都没看懂。中间出了一点点小问题,但是改对了。因为我没考虑到1这个情况,4
的0次方是1。太粗心了。然后他让我别用hash_set,用普通方法做一个。我就写了个循
环的方法。循环的方法倒是一次性bug free了。pow4伺候完就开始第二题了。
最短路径那个时间不够了没做完。 不过没做完他倒是没说啥因为开始做这题的时候已
经就剩下10分钟了,他说没做完没事,讲下思路就行。我就没怎么花心思在code上,重
点讲了BFS,画了图给他描述了... 阅读全帖
y**b
发帖数: 10166
34
有好几个函数都是这样,而main()的作用只是调用这几个函数之一。这样每次main()
调用不同函数(重新编译),都得改动头文件来决定需要定义哪个宏,比较麻烦。
(之所以出现这种情况,是因为这几个函数要分别利用某个段代码的不同部分,用宏
来区分的)。
也就是说:
if 某个函数被调用
then 定义某宏
这个在c++里面如何实现?有没有更简洁的办法?
h********m
发帖数: 116
35
比如说:我jdbc连到数据库,然后我自己有个Scala写的字符串变换函数,对某表某列
的字符串进行特定操作。我怎样调用这个函数,应用到这一列呢?貌似Stored
Procdcure只能调用内部函数?
补充:是对Oracle数据库进行操作。有人建议用Groovy写一些function。我搜了半天,
还是没找到怎么调用。谁能给点建议?
举个简单例子,我有个groovy或者Scala的function f(x), return 2*x
那我想jdbc连到oracle的某个表,然后调用f(x), 把这个表某列的值全部变成2x
h********m
发帖数: 116
36
比如说:我jdbc连到数据库,然后我自己有个Scala写的字符串变换函数,对某表某列
的字符串进行特定操作。我怎样调用这个函数,应用到这一列呢?貌似Stored
Procdcure只能调用内部函数?
补充:是对Oracle数据库进行操作。有人建议用Groovy写一些function。我搜了半天,
还是没找到怎么调用。谁能给点建议?
举个简单例子,我有个groovy或者Scala的function f(x), return 2*x
那我想jdbc连到oracle的某个表,然后调用f(x), 把这个表某列的值全部变成2x
h********m
发帖数: 116
37
比如说:我jdbc连到数据库,然后我自己有个Scala写的字符串变换函数,对某表某列
的字符串进行特定操作。我怎样调用这个函数,应用到这一列呢?貌似Stored
Procdcure只能调用内部函数?
补充:是对Oracle数据库进行操作。有人建议用Groovy写一些function。我搜了半天,
还是每找到怎么调用。谁能给点建议?
l******d
发帖数: 530
38
多谢了,再问下,这种变长参数的函数调用,往stack里push的东西,和普通的定长参
数函数调用有区别吗?对定长参数函数调用,stack里push的就是寄存器和参数,对变
长参数函数调用而言,会有什么特殊处理吗?

is
a*********a
发帖数: 3656
39
来自主题: Programming版 - C++糟粕和需要避免的。
函数名和类名编译的时候总是要mangle的。如果你对over loaded function name
decoration不满意,那等你看到编译后的class name,岂不是要吐血?如果你的函数不
需要从别的语言调用,那name mangling完全无关。如果要从别的语言调用,那name
mangling是很多问题中极其trivial的一个。
“只能重载基本类型。”是啥意思? 一个ostream::operator<< 就不知道被多少自定
义的高级类重载了。
关于“函数调用前后悄悄塞自动代码。” c++传值给了你3种选择,by value,by
reference,by pointer。后两种都不调用copy constructor。如果细分的话,by
reference to const和by pointer to const在语义上和非 const的有显著区别。有的
语言,只支持by value或by reference。前者无法改变传递过来的参数,后者如果你要
在函数内部对参数操作但是不改变call site的变量值,那还是得自己做deep copy。
b*****d
发帖数: 7166
40
来自主题: Programming版 - 怎样在Python里调用Visual C++的函数?
在VC里有一个project,里面是很多c++程序,包括.h和.cpp文件。 里面定义了一些函
数。
现在要在Python里调用这些函数。
有什么办法可以比较简单的(不用自己写很多wrapper)调用这些现成的函数?
最好是在windows里做。因为我们在Windows上工作。试过boost.python,但是
没能成功安装。boost.python上的Manuel太旧了,已经驴唇不对马嘴。
我在linux上试了一下ctypes。自己写了几个简单的c++程序。发现用python调用还可以
。但是用Ipython notebook时有些问题。比如一个void函数,里面有个cout< number< 显示不出double,而是个很大的整数!但是在python里就没有这个问题。怎么修改?
实在不行就copy到linux上工作,但是不想做太多修改。
有什么好的建议?
a********m
发帖数: 15480
41
来自主题: JobHunting版 - 请问这是什么level的面试题
简单说几句。板上大牛多,俺板门弄斧下,再说大牛们估计也觉得说这个太简单了。如
果有错误请指出。谢先。另外俺用c/c++的前几年也不是很理解很多细节,只管记语法
,或者有些理解错误,所以刚开始用c++的童鞋不清楚这个的话也是正常的。
首先要知道c++对象和structure除了缺省private以外没有区别。都是一堆成员变量组
成一个内存块。
但是如果类有一个虚函数以后每个对象会在开头多一个指针变量。现在的机器和编译器
一般来说是4个字节。这个指针指向这个类的虚函数表,而且所有的同类对象的指针都
指向同一个表。虚函数调用是先去这个表查询一下(编译器会分配一个下标),调用函
数实际类似 _vtable[下标](.....),其中_vtable 相当于(*(void*)pobj).
编译器编译虚函数的时候不是生成函数跳转,而是生成一个下标。对于同一个函数,基
类和子类有不同的虚函数表,但是有相同的函数下标。所以做_vtable[下标]动作的时
候虚函数就是子类的的实际函数了,只要指针本身是正确的(指向子类或者基类,而不
是强制转成乱七八糟的指针)。总的来说编译器负责产生下标,而对象负责提供一... 阅读全帖
a********m
发帖数: 15480
42
来自主题: JobHunting版 - 请问这是什么level的面试题
简单说几句。板上大牛多,俺板门弄斧下,再说大牛们估计也觉得说这个太简单了。如
果有错误请指出。谢先。另外俺用c/c++的前几年也不是很理解很多细节,只管记语法
,或者有些理解错误,所以刚开始用c++的童鞋不清楚这个的话也是正常的。
首先要知道c++对象和structure除了缺省private以外没有区别。都是一堆成员变量组
成一个内存块。
但是如果类有一个虚函数以后每个对象会在开头多一个指针变量。现在的机器和编译器
一般来说是4个字节。这个指针指向这个类的虚函数表,而且所有的同类对象的指针都
指向同一个表。虚函数调用是先去这个表查询一下(编译器会分配一个下标),调用函
数实际类似 _vtable[下标](.....),其中_vtable 相当于(*(void*)pobj).
编译器编译虚函数的时候不是生成函数跳转,而是生成一个下标。对于同一个函数,基
类和子类有不同的虚函数表,但是有相同的函数下标。所以做_vtable[下标]动作的时
候虚函数就是子类的的实际函数了,只要指针本身是正确的(指向子类或者基类,而不
是强制转成乱七八糟的指针)。总的来说编译器负责产生下标,而对象负责提供一... 阅读全帖
g****t
发帖数: 31659
43
来自主题: Programming版 - [bssd]计算机科学的自然律
functional programming逐步变成非显学。人少的时候我来趁机发个言。
计算机科学第一重要的自然律,我觉得是universal Turing machine
或者church-turing thesis的构造性证明。
它绝对不是显然的。一个系统内部可以有自己的严格表示。这绝对不是显然的。
觉得是显然的,可以猜一下多久量子计算机会有universal machine
三大计算系统,Godel,Church,Turing的等价性,是Turing证明的。
Church率先发表,但是证明中间有gap。正确的证明需要通过Turing 的工具。
Godel没有指出Church证明中的数学正确性问题(我怀疑他知道)。
Godel毫不含糊的说,Turing统一的定义了可计算性。(指的是概念的建模方面)
从实践的角度,图灵1936年的一个单独论文提出,给一个函数f(n),
要定义f(n-1)的一些属性,有一个办法可以用函数调用方便的做到。
这就是loop用lambda calculus/function call实现的一般技术。
或者goto用函数调用来实现的起源。
这是我看到的第一个用... 阅读全帖
g****t
发帖数: 31659
44
来自主题: Programming版 - [bssd]计算机科学的自然律
functional programming逐步变成非显学。人少的时候我来趁机发个言。
计算机科学第一重要的自然律,我觉得是universal Turing machine
或者church-turing thesis的构造性证明。
它绝对不是显然的。一个系统内部可以有自己的严格表示。这绝对不是显然的。
觉得是显然的,可以猜一下多久量子计算机会有universal machine
三大计算系统,Godel,Church,Turing的等价性,是Turing证明的。
Church率先发表,但是证明中间有gap。正确的证明需要通过Turing 的工具。
Godel没有指出Church证明中的数学正确性问题(我怀疑他知道)。
Godel毫不含糊的说,Turing统一的定义了可计算性。(指的是概念的建模方面)
从实践的角度,图灵1936年的一个单独论文提出,给一个函数f(n),
要定义f(n-1)的一些属性,有一个办法可以用函数调用方便的做到。
这就是loop用lambda calculus/function call实现的一般技术。
或者goto用函数调用来实现的起源。
这是我看到的第一个用... 阅读全帖
h****g
发帖数: 772
45
【 以下文字转载自 Programming 讨论区 】
发信人: huangg (水银泻地), 信区: Programming
标 题: slider多长时间调用一次callback?在哪里设置呢?
发信站: BBS 未名空间站 (Thu May 26 01:11:15 2011, 美东)
slider多长时间调用一次callback?在哪里设置呢?
通常滑块控件当值变化时调用callback,
但是当用鼠标改变值的时候,会连续调用多次callback
想知道哪里设置隔多久调用一次呢?似乎有的控件需要回车才调用callback函数的
我知道这个问题和用的库有关,但是我们组现在用的是fltk,不知有多少人在用
如果不是那么普遍的话,希望知道通常的概念,也许我能去看源程序
我也知道可以在callback函数中等到一定时间再动作,但还是想知道究竟多久调用一次
h****g
发帖数: 772
46
slider多长时间调用一次callback?在哪里设置呢?
通常滑块控件当值变化时调用callback,
但是当用鼠标改变值的时候,会连续调用多次callback
想知道哪里设置隔多久调用一次呢?似乎有的控件需要回车才调用callback函数的
我知道这个问题和用的库有关,但是我们组现在用的是fltk,不知有多少人在用
如果不是那么普遍的话,希望知道通常的概念,也许我能去看源程序
我也知道可以在callback函数中等到一定时间再动作,但还是想知道究竟多久调用一次
c******e
发帖数: 545
47
来自主题: JobHunting版 - 再请教个:C变长参数的传递问题
这种函数都是__cdecl调用,参数从右向左压栈,主调函数清栈。
format string在最左(printf)或次左(fprintf,sprintf...),所以用[BP]访问的时候
位置可预测,然后根据format string生成每个参数的偏移地址。
一般来说函数调用大致顺序(__cdecl)是:
1.主调函数从右到左压参数
2.建立栈帧
1)保存BP(32位下EBP,下同)push bp
2)保存当前栈位置:mov bp,sp
因为BP和SP默认同时用栈段(SS),用BP上可访问参数,下可访问局部变量,一般不用
SP,因为SP总是在变。
3.函数体
4.恢复bp:mov sp,bp pop bp
4.函数返回
5.主函数清栈(xxx是参数大小):add sp,xxx
时间太久可能细节不太准确,不过大致过程应该差不多,可以使用变长参数的两个决定
因素是:1. 右到左压栈 2. 主调函数清栈
f*****o
发帖数: 95
48
来自主题: Linux版 - Linux新手问一Ubuntu Dev问题
咱一Linux新手,现给VLC media player加一 EVRC decoder plugin以便其能够播放
movie的EVRC audio track,该plugin调用thirdparty EVRC library, 只需用到其中的
两个函数, 一个是在plugin初始化(OpenDecoder)时调用evrc_InitDecoder(该函数调用
没有问题), 另外一个是在DecodeBlock回调函数中调用evrc_Decode,编译整个VLC时没
有问题,运行的
时候该plugin load不起来,debug进去一看,是dlopen 该plugin的.so失败,如果
comment掉该行evrc_Decode代码,该plugin load就没有问题(dlopen this .so will be
successful), 请问大侠这是啥情况? env是Ubuntu 10.4 x86_64, eClipse Kepler
b***y
发帖数: 2799
49
☆─────────────────────────────────────☆
gandjmitbbs (Nothing) 于 (Sun Apr 13 20:19:15 2008) 提到:
最近在看一个新项目的代码,有感。
例如看到一个函数调用,不能马上反应上来哪些传入参数会被修改,尤其code很长很多
,记不住function signature的时候。
用之前的call-by-value,通过指针修改传入参数,函数调用看一眼参数列表,看到&基
本就能知道这个参数要被修改了。
还有带默认参数的函数也是,若有好几个默认参数,挺容易搞混的。
这些功能减少了写程序人的工作量,但是读程序的工作量却增加了。但我觉得现在对程
序员来说读代码也越来越重要。
IDE要有添加信息功能就好了。比如在函数调用里加上哪些参数是call-by-ref,哪些是
启用了参数默认值等。
另外有没有度量程序可读性方面的研究?比如给定源代码,分析一遍之后给出可读性分
析,再给些改进建议什么的。
☆─────────────────────────────────────☆
coconut (向唐僧大师学
l********a
发帖数: 1154
50
来自主题: Programming版 - 问一个函数指针的问题,c++
函数指针一直没有搞太懂,先描述下需求:
我想用遗传算法解一个问题,现在大体部分完成了,算法也能跑,计算得出结果也正确.整
个算法是编译为dll供其他程序调用
目前设置的算法有个objectiveFun(string funName)函数,根据输入字符串来决定调用
哪个目标函数,(因为边写边测试,用的最简单的函数f(x)=x_1+x_2,测试,但是真正计算
的时候,目标函数很复杂的),
double objectiveFun(string funName)
{
if (0==funName.compare("test"))
{ return testFun(x); }
else if (0==funName.compare("run"))
{ return run(x); }
}
现在我想把这个GA算法做成一个通用的,所以准备将objectiveFun改写,如果可以接受一
个函数指针,这样编程的时候就不用写死了,运行时没法修改.想弄成动态改变的,不知道
可不可行?因为我没有深入看过函数指针,不知道这个路走不走的通?多谢.
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)