以下两种写法那个 好?????????????
int funA()
begin
result := 100;
end;int funB()
var
i:int;
begin
i:= 100;
result := i;
end;

解决方案 »

  1.   

    当然是int funA()
    begin
    result := 100;
    end;
      

  2.   


    int funB()
    var
    i:int;
    begin
    i:= 100;
    result := i;
    end;这种写是不是为了以后好扩展,但如果这是这样写也没法扩展啊。
      

  3.   

    个人拙见:
    第一种方法 是正确的第二种方法可以说是不安全的  因为 result = 局部变量  
    局部变量的作用域是当前函数  所以在函数外部很可能是是一个无效的地址或者值
      

  4.   

    ps. 告诉楼主,其实Result就是一个“局部变量”,看来还是用out参数最安全ps 2.楼主这种担心只有在混用无GetMem的PChar和String的时候有必要
      

  5.   

    result一般就是指寄存器A 
    没看出来孰优孰劣
      

  6.   

    两种写法都很扯淡你一定要用的话,我建议你这么写:const funA = 100;还有那个说不安全的,可能分不清传值和传址的差别。都安全的很。
      

  7.   

    老大,您这写的是C和pascal的混合编程语言啊
      

  8.   

    应用一个佐证吧  C++Primer中文版(第4版).pdf
      

  9.   


    如果你遇到 上面无聊的的东西产生bug 你就不感觉无聊了
      

  10.   

    你可以去试试啊!方法也很简单 我也引用 C++Primer中文版(第4版).pdf   248页 作为参考了 楼上有图片
      

  11.   

    看不到你发的图,但是知道你大概想要说的
    但是你举的例子实在太缺乏说服力了#include <iostream>
    using namespace std;char* test1()
    {
    char a[] = "test";
        return a;
    }char* test2()
    {
    char* a = NULL;
    a = "test";
    return a;
    }char* test3()
    {
    return "test";
    }int main(void)
    {
    cout<<test1()<<endl;
    cout<<test2()<<endl;
    cout<<test3()<<endl;
    return 0;
    }第一个输出乱码, 就是你要的效果吧
      

  12.   

    看不到图啊 真不好意思C++Primer中文版(第4版).pdf 248页 作为参考了  明确说明不要将 局部变量作为返回值。
    test1 返回的是局部变量  出错test2 返回的是指针   正确test3  返回是常量 这个 正确char* test1()
    {
        char a[] = "test";
        return a;
    }char* test2()
    {
        char* a = NULL;
        a = "test";
        return a;
    }char* test3()
    {
        return "test";
    }上面的解析 是对
      

  13.   

    test1 返回的是局部变量 出错test2 返回的是指针 正确test3 返回是常量 这个 正确
    -------------------
    这都什么解释啊
    建议你好好去看下C++ PRIMER,
      

  14.   

    楼主高手,自创的新语言,叫什么来着? Cascal 么?
      

  15.   

    Pascal  你都不知道吗?伟大的语言啊!曾经风靡一时。你玩的游戏 很多都是 Pascal 写的  传奇还有很多。我平时不玩游戏。
      

  16.   

    在不清楚 去查查 delphi  和 Pascal  的关系吧!!!
    真是让人气愤。用delphi  而不知道 Pascal。我看啊,你可以去重新学习啦。先搞清楚谁是谁吧!!!!!!!!!!!!!!!!!!!!
      

  17.   

    支持
    个人建议用第二种吧!
    因为如果你业务逻辑复杂可能没有给result赋上值的话,result会返回上一次result的值,result一般就是指寄存器A 。最好在程序开始赋初值。。