y**b 发帖数: 10166 | 1 其它函数只会被这个成员函数调用,所以设置成嵌套函数比较合理,
但C++并不支持嵌套函数吧?有没有比较好的方式呢,不想把这个
其它函数设置成同成员函数一个级别。 |
|
s**********4 发帖数: 3 | 2 会写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 关于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 比如一个类A,有私有函数 f(),
两个public的函数 a(), b(),
a() 调用 类A中的私有函数f();
b() 调用 外部的一个函数也叫 f();
两个函数在参数类型上没有差别,
该如何做,我发现在类A内的函数调用 f()
时总是调用的类内的那个 f(); |
|
p*****c 发帖数: 20 | 8 我在头文件里声明了函数
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 没用过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 我用的是DevC++.同时打开主函数main.cpp和函数文件cal_sum.cpp,编译主函数的时候
出现undefined reference 错误。 |
|
s**********p 发帖数: 24 | 14 初学者请教一个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); |
|
|
r****o 发帖数: 1950 | 17 如果有很多function定义在不同的文件中,
有没有什么软件可以静态显示出这些function之间的调用关系? |
|
l*******h 发帖数: 3 | 18 这几天学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 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 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 师傅,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 非常不幸。编译器从来不会自动找.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 背景:新鲜小硕,申的是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 背景:新鲜小硕,申的是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 函数名和类名编译的时候总是要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 在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 简单说几句。板上大牛多,俺板门弄斧下,再说大牛们估计也觉得说这个太简单了。如
果有错误请指出。谢先。另外俺用c/c++的前几年也不是很理解很多细节,只管记语法
,或者有些理解错误,所以刚开始用c++的童鞋不清楚这个的话也是正常的。
首先要知道c++对象和structure除了缺省private以外没有区别。都是一堆成员变量组
成一个内存块。
但是如果类有一个虚函数以后每个对象会在开头多一个指针变量。现在的机器和编译器
一般来说是4个字节。这个指针指向这个类的虚函数表,而且所有的同类对象的指针都
指向同一个表。虚函数调用是先去这个表查询一下(编译器会分配一个下标),调用函
数实际类似 _vtable[下标](.....),其中_vtable 相当于(*(void*)pobj).
编译器编译虚函数的时候不是生成函数跳转,而是生成一个下标。对于同一个函数,基
类和子类有不同的虚函数表,但是有相同的函数下标。所以做_vtable[下标]动作的时
候虚函数就是子类的的实际函数了,只要指针本身是正确的(指向子类或者基类,而不
是强制转成乱七八糟的指针)。总的来说编译器负责产生下标,而对象负责提供一... 阅读全帖 |
|
a********m 发帖数: 15480 | 42 简单说几句。板上大牛多,俺板门弄斧下,再说大牛们估计也觉得说这个太简单了。如
果有错误请指出。谢先。另外俺用c/c++的前几年也不是很理解很多细节,只管记语法
,或者有些理解错误,所以刚开始用c++的童鞋不清楚这个的话也是正常的。
首先要知道c++对象和structure除了缺省private以外没有区别。都是一堆成员变量组
成一个内存块。
但是如果类有一个虚函数以后每个对象会在开头多一个指针变量。现在的机器和编译器
一般来说是4个字节。这个指针指向这个类的虚函数表,而且所有的同类对象的指针都
指向同一个表。虚函数调用是先去这个表查询一下(编译器会分配一个下标),调用函
数实际类似 _vtable[下标](.....),其中_vtable 相当于(*(void*)pobj).
编译器编译虚函数的时候不是生成函数跳转,而是生成一个下标。对于同一个函数,基
类和子类有不同的虚函数表,但是有相同的函数下标。所以做_vtable[下标]动作的时
候虚函数就是子类的的实际函数了,只要指针本身是正确的(指向子类或者基类,而不
是强制转成乱七八糟的指针)。总的来说编译器负责产生下标,而对象负责提供一... 阅读全帖 |
|
g****t 发帖数: 31659 | 43 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 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 这种函数都是__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新手,现给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 函数指针一直没有搞太懂,先描述下需求:
我想用遗传算法解一个问题,现在大体部分完成了,算法也能跑,计算得出结果也正确.整
个算法是编译为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改写,如果可以接受一
个函数指针,这样编程的时候就不用写死了,运行时没法修改.想弄成动态改变的,不知道
可不可行?因为我没有深入看过函数指针,不知道这个路走不走的通?多谢. |
|