1. 首页
  2. 编程语言
  3. C
  4. 子函数和私有函数-恶意代码分析实战英文原版pdf

子函数和私有函数-恶意代码分析实战英文原版pdf

上传者: 2024-07-20 02:23:08上传 PDF文件 26.13MB 热度 19次

在MATLAB中,我们可以在一个文件中创建多个函数。如果一个文件中有多个函数,那么最上面的那个函数是普通函数,下面的函数称为子函数或中间函数。子函数看起来和普通函数一样,但它们只能被同一文件中的函数调用。比如,下面的例子定义了一个函数mystats和两个子函数meanmedianmystats函数可以被其他MATLAB函数调用,但子函数meanmedian只能被同一文件中的其他函数调用。


function [avg, med] = mystats(u)

    % MYSTATS Find mean and median with internal functions.

    % Function MYSTATS calculates the average and median

    % of a data set using subfunctions.

    n = length(u);

    avg = mean(u, n);

    med = median(u, n);



    function a = mean(v, n)

        % Subfunction to calculate average.

        a = sum(v) / n;

    end



    function m = median(v, n)

        % Subfunction to calculate median

        w = sort(v);

        if rem(n, 2) == 1

            m = w((n + 1) / 2);

        else

            m = (w(n / 2) + w(n / 2 + 1)) / 2;

        end

    end

end

私有函数是指那些属于以private为名字的子目录中的函数。这些函数只有在父目录中才是可见的。假设在MATLAB搜索路径中有一个testing目录,在testing目录中,又有一个private子目录。private中的函数只能由testing中的函数调用。因为对于父目录以外的目录私有函数是不可见的,所以它们能和其他目录中的函数重名。举个例子,如果你在MATLAB搜索路径中创建了一个private子目录,就等于你拥有了一个隐秘的“地下室”!

为了创建一个私有目录,只需要在包含函数的目录中创建一个private子目录。这样一来,你的私有函数就不会出现在搜索路径中,也不会和其他目录中的函数发生命名冲突。MATLAB会先查找子函数,然后再查找私有函数,最后才会查找标准搜索路径中的函数。比如,如果你有一个私有函数test.m,MATLAB会先找到私有函数test.m,再找到非私有M文件test.m。这种查找顺序使得你能够放心地创建私有函数,而不必担心命名冲突。

如果你希望MATLAB函数只能由其他函数调用,而不允许操作者直接调用,可以考虑用子函数或私有函数来隐藏它们。隐藏这些函数不仅防止了它们被偶然使用,也能防止与其他公共函数重名时发生的冲突。好的编程习惯是用子函数或私有函数来隐藏那些有特殊用途的函数,这些隐藏的函数只能被其他函数调用。

想了解更多关于MATLAB子函数的使用方法吗?你可以参考这些资源:矩阵拆分MATLAB子函数MATLAB子函数调用方法说明子函数调用,以及MATLAB子函数function用法示例

这些隐藏的函数就像是一个秘密武器,既能保护你的代码安全,又能提高程序的可靠性。你是不是也想试试呢?

下载地址
用户评论