#define BUFF_SIZE 100000
unsigned char buffer[BUFF_SIZE];
void myfunc(unsigned char[],int,int);
void myfuncinfunc(unsigned char[],int,int);
int main()
{
int a = 10, b = 10;
myfunc(buffer,a,b);
}
void myfunc(unsigned char array[],int a,int b)
{
int m,n;
//blah blah
myfuncinfunc(array,m,n);
}
void myfuncinfunc(unsigned char array[],int a, int b)
{
//blah blah
}
Я хочу знать следующее:
Я создал статический массив, как показано выше, для основной функции. Это эффективно? Было бы лучше, если бы я вместо этого использовал точку и malloc?
Я знаю, что он не использует стек, поэтому, когда я передаю массив во внутренние функции, будет ли он создавать копию всего массива или просто отправлять местоположение первой записи?
При работе с «массивом» в функции «myfunc» я работаю непосредственно со статическим определенным массивом или некоторой локальной копией?
Внутри функции «myfunc», когда мы передаем массив в функцию «myfuncinfunc», будет ли она снова отправлять в стек только первое местоположение или полную копию массива?
Спасибо за чтение вопроса и будем очень признательны за любую помощь! Я новичок в C и пытаюсь изучить его в Интернете.
buffer
является глобальным, поэтому вам не нужно передавать его в качестве параметра другим функциям. - person Tom Fenech   schedule 03.03.2014#include
. - person Tom Fenech   schedule 03.03.2014