第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 cgo 導(dǎo)出函數(shù)中獲取正確的參數(shù)名稱?

如何在 cgo 導(dǎo)出函數(shù)中獲取正確的參數(shù)名稱?

Go
繁華開滿天機(jī) 2023-07-10 17:58:05
我正在用 Go 編寫一個(gè)庫,我想將其導(dǎo)出到 c 共享庫。p0它工作得很好,但是我發(fā)現(xiàn)導(dǎo)出的標(biāo)頭使用, p1, p2,...作為參數(shù)名稱而不是 Go 中的原始參數(shù)名稱有點(diǎn)煩人。有沒有辦法改變這種行為,或者我只是堅(jiān)持這樣做?我在用go version go1.12.7 darwin/amd64例子:package main/*#import <stdlib.h>*/import "C"import (? ? "fmt")func main() {}//export MyFuncfunc MyFunc(input *C.char) {? ? fmt.Println(C.GoString(input));}go?build?-o?libout.so?-buildmode=c-shared輸出:extern?void?MyFunc(char*?p0);為什么沒有p0點(diǎn)名input?Go 函數(shù)可以通過以下方式導(dǎo)出以供 C 代碼使用://export MyFunctionfunc MyFunction(arg1, arg2 int, arg3 string) int64 {...}//export MyFunction2func MyFunction2(arg1, arg2 int, arg3 string) (int64, *C.char) {...}它們?cè)?C 代碼中的形式如下:extern int64 MyFunction(int arg1, int arg2, GoString arg3);extern struct MyFunction2_return MyFunction2(int arg1, int arg2, GoString arg3);然而,當(dāng)我編譯它給出的確切代碼時(shí),我得到這個(gè)結(jié)果:extern GoInt64 MyFunction(GoInt p0, GoInt p1, GoString p2);extern struct MyFunction2_return MyFunction2(GoInt p0, GoInt p1, GoString p2);為什么參數(shù)沒有名字?
查看完整描述

1 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

Go 允許任意符文名稱,例如,input您可以調(diào)用變量π。C 不允許這樣的名稱。大概cgo的作者不想限制你的名字,所以他們只是重命名了所有的東西。

奇怪的是,文檔暗示生成的代碼將使用您的名字。如果它確實(shí)這樣做了,那就太好了,前提是你的名字是可行的。


查看完整回答
反對(duì) 回復(fù) 2023-07-10
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)