前言:是的,我知道函式定義的不一致,我正在嘗試撰寫該東西。
具體在行
void renderScreen(char& currentMap[100][100], int& screenX, int& screenY)
在char& currentMap[100][100]創建參考陣列。如何在不創建參考陣列的情況下將基于 2D 映射(字符陣列)的單獨字符變數呼叫到此函式中?
語境:
#include <iostream>
#define _WIN32_WINNT 0x0500 //win2000, must be before #windows.h
#include <windows.h>
#include <strsafe.h>
#include "declarations.h"
using namespace std;
int main(int screenX, int screenY)
{
SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE), CONSOLE_FULLSCREEN_MODE, 0);
while (!quit) {
}
return 0;
}
void renderScreen(char& currentMap[100][100], int& screenX, int& screenY) {
int xi; int yi;
for (xi = 0; xi < screenX; xi ) {
for (yi = 0; yi < screenY; yi ) {
screen = currentMap[xi][yi];
}
cout << screen << endl;
screen.clear();
}
}
.h 檔案
#pragma once
//fns
void renderScreen(char& currentTile, int& screenX, int& screenY);
//vars
string screen;
bool quit = false;
int i; int j;
int screenX; int screenY;
char currentMap[100][100];
char currentTile;
uj5u.com熱心網友回復:
我認為宣告為參考的第二個和第三個引數宣告沒有任何意義
void renderScreen(char& currentMap[100][100], int& screenX, int& screenY);
因為在函式內用作引數的原始物件在函式內沒有改變。所以該函式至少可以宣告為(如果忽略第一個引數的不正確宣告)
void renderScreen(char& currentMap[100][100], size_t screenX, size_t screenY);
通過參考傳遞陣列也沒有多大意義。
該函式可以宣告為
void renderScreen(const char ( *currentMap )[100], size_t screenX, size_t screenY);
如果通過參考傳遞陣列,則函式宣告可以如下所示
void renderScreen(const char ( ¤tMap )[100][100], size_t screenX, size_t screenY);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/317123.html
上一篇:如何轉發可變的lambda
下一篇:避免概念的隱式轉換
