Tôi có một hàm đơn giản Bar
sử dụng một tập hợp các giá trị từ một tập dữ liệu được truyền theo dạng một mảng của cấu trúc dữ liệu. Dữ liệu có thể đến từ hai nguồn: một mảng được khởi tạo không đổi của các giá trị mặc định hoặc bộ nhớ cache được cập nhật động.Làm thế nào tôi có thể vượt qua một mảng const hoặc một mảng biến cho một hàm trong C?
Chức năng gọi xác định dữ liệu nào được sử dụng và phải được chuyển đến Bar
. Bar
không cần chỉnh sửa bất kỳ dữ liệu nào và trên thực tế không bao giờ nên làm như vậy. Làm cách nào để khai báo tham số dữ liệu của Bar
để tôi có thể cung cấp dữ liệu từ một trong hai bộ?
union Foo
{
long _long;
int _int;
}
static const Foo DEFAULTS[8] = {1,10,100,1000,10000,100000,1000000,10000000};
static Foo Cache[8] = {0};
void Bar(Foo* dataSet, int len);//example function prototype
Lưu ý, đây là C, KHÔNG C++ nếu điều đó tạo sự khác biệt;
Chỉnh sửa
Ồ, một điều nữa. Khi tôi sử dụng mẫu thử nghiệm mẫu, tôi nhận được cảnh báo loại không phù hợp về loại vòng loại, (vì tôi đang chuyển một tham chiếu có thể thay đổi đến một mảng const?). Tôi phải thay đổi điều gì?
+1, chỉ vì tôi rất vui vì vẫn còn một số người không gắn thẻ câu hỏi của họ 'C/C++' và tạo sự khác biệt giữa hai câu hỏi: D – ereOn