C/C++開發
其想法是最終擁有一個在后臺運行的程序。該程序以每秒至少24像素的速度將像素繪制到桌面墻紙上。 我已經嘗試使用某些dektophandles,但沒有達到預期效果。此解決方案還可以在光標和圖標上繪制。 建議? 推薦答案 這個鐵銹箱可以換很多操作系統的墻紙: https://docs.rs/wallpaper/2.0.1/wallpaper/ 它可能不會產生您所說的性能,根
..
我有一個用例,其中我需要以不特定的順序存儲一定數量的uint16_t變量(盡管變量的實際類型并不相關)。我已決定求助于STL來尋找最符合我需要的容器。 容器中的對象可以從容器中取出以供使用,然后放回容器中。在某種程度上,機械師可能只有一盒螺絲刀,而不是把螺絲刀放在口袋里。容器不需要對存儲的對象執行任何分類,取出什么并不重要-唯一的要求是知道容器中是否還有任何東西。 我的眼睛轉向std:
..
struct node{ int data; node* next; } int main(){ Node *head; head->data = 999; Node *new_node; new_node->data = 1; head->next = new_node; cout next)->data; } 此代碼不起作用。如果我使用分配,它是有
..
例如,我有一個empty函數來清除鏈表: void empty(Node* head) { if (head->next) { empty(head->next); } delete head; head = nullptr; } 但后來我為鏈表創建了一個類,所以現在不需要傳遞head參數: void empty() {
..
最近我搜索了int、long int、long、...諸若此類。我從here得到了答案。我發現long和long int是相同的。所以這些聲明 c = a *long(b); 和 c = a * long int (b) 程序中應相同 int main() { int a = 10, b = 20; long int c; c = a *l
..
我們知道,要計算整數x/2,我們只需為x*2編寫類似的y=x/2;;但優秀的程序員使用位操作來計算這一點。 他們只是y = x >> 1; 這兩種方法有什么區別嗎? 我所說的差異是指所需時間/空間/內存的差異,或者兩者完全相同(即x/2由x>>1實現)? 與其他數字而不是2的乘除也是以相同的方式實現的(即5*5 = 10*2 + 5*1 = 10
..
我正在嘗試獲取一串表情符號,并將它們拆分成每個表情符號的向量 給定字符串: std::string emojis = "????????????????"; 我正在嘗試獲?。?std::vector splitted_emojis = {"??", "??", "??", "??", "??", "??", "??", "??"}; 編輯
..
我要編寫一個函數,該函數使用指針輸入一個數據數組并輸出另一個數據數組。 我想知道,如果src和dst都指向同一個地址,結果會是什么,因為我知道編譯器可以針對const進行優化。它是不是未定義的行為?(我標記了C和C++,因為我不確定它們之間的答案是否會不同,我想知道兩者的情況。) void f(const char *src, char *dst) { dst[2] = src
..
C++標準要求編譯器在C++常量計算中檢查未定義的行為。 在this talk中,Chandler Carruth指出,在檢查UB時“您將耗盡檢測錯誤的能力”,而且在一般情況下,檢測UB與halting problem相關,因此可以證明無法確定。 他指的不是conexpr中的UB,但conexpr計算從C++14開始就像常規程序一樣通用,因此這仍然適用。 那么,當編譯器無法確定程
..
我正在為我的C++入門課的期末考試做準備。我們的教授給了我們這樣一個練習題: 解釋代碼產生以下輸出的原因:120 200 16 0 using namespace std; int main() { int x[] = {120, 200, 16}; for (int i = 0; i
..
這是C++中的有效函數: int f() { if(false) { return 42; } } 以下定義導致UB: int x = f(); // return value used 問題: 以下表達式語句是否導致UB? f(); 非常歡迎來自標準的報價。 推薦答案 C++03§6.6.3/2: 流出函數末尾相當于沒
..
我有一項任務是將一些C++代碼轉換為ASM,我想知道我的想法是否有意義。首先,我會將整數轉換為浮點數。我想得到數組數據到SSE寄存器,但這里有問題,因為我只想要3而不是4個整數,有什么方法可以克服這個問題嗎?然后,我將使用CVTDQ2PS將這些整數轉換為浮點數,并將這些數字保存在內存中。對于像0.393這樣的常量數字,我會做3個浮點數的矢量,然后我會做同樣的操作三次,所以我只考慮sepiaRed。
..
這是我第一次問,所以我將在這里盡我最大的努力,但我在一項匯編任務中遇到了麻煩,在該任務中,我獲得了一個.cpp文件(如下所示),并且必須創建一個包含Multiply、Square和Divide函數的.asm文件。我有一個問題,那就是在平方和乘法函數完成后,我必須調用PrintResult來顯示答案。對于Divide,成功的除法返回1,不成功的除法返回0并調用PrintResult以顯示失敗消息。我
..
我正在開發一個程序,該程序將使用MASM調用一些C++函數。我在一個單獨的文件中定義了對2個整數求和并顯示輸出。 目前,我無法讓‘main.cpp’運行asmMain()從‘main.cpp’調用函數。 code.asm ; --------------------------------------- promptFirst PROTO C promptSecond
..
輸入以下代碼后,將出現錯誤。 const int quantity; cout > quantity; 錯誤:未初始化常量‘Quantity’[-fpermissive] 錯誤:‘OPERATOR>>’的重載不明確 如果我只使用類型int ,則不
..
我嘗試像編譯器一樣從用戶的輸入中讀取令牌。 標記化運行良好,但在輸出所有標記時,我希望在它們全部發出后換行。 以下是我的代碼: #include #include #include //import for using std::getline() #include //DIGITs const std::stri
..
while(!(cin >> ar[i])) { cin.clear(); // clears bad input while(cin.get() != ' ') continue; cout
..
我需要對程序的輸入執行類似的操作: stream input; if (decompressed) input.open(filepath); else { file_descriptor=_popen("decompressor "+filepath,"r"); input.open(file_descriptor); } input.read(...) ...
..
為什么C++標準庫流使用與對象生存期分離的open()/close()語義?從技術上講,關閉銷毀可能仍然會使類成為RAII類,但獲取/釋放獨立性會在作用域中留下漏洞,其中句柄可以什么都不指向,但仍然需要運行時檢查才能捕獲。 為什么庫設計者選擇他們的方法,而不是只在引發失敗的構造函數中打開? void foo() { std::ofstream ofs; ofs
..
我正在嘗試創建一個既是輸入流又是輸出流的類(如std::cout和std::cin)。我試圖重載操作符>,但后來我明白了,編寫這樣的代碼并不明智(因為這將是重寫C++流的一種方法),而且當像std::basic_iostream、std::basic_ostream、std::basic_istream這樣的類在C++標準庫中可用時,維護是非常困難的,因為我必須為每種類型重載操作符。因此,
..