int(abc)(int,int)是什么意思?

时间:2019-06-11 06:51:32

标签: c++ function-pointers declaration

我正在尝试将数组指针和函数指针一起随机声明。我被打中了。

#include<bits/stdc++.h>
int add(int a,int b){ 
    return 1729; }
int main(){
    int (abc)(int,int);
    abc = add;
    return 0;
}

发出的错误是:

cannot convert 'int(int, int)' to 'int(int, int)' in assignment

但是由于abcadd属于同一类型,为什么要转换?还是可以将函数分配给新变量?如果是这样,该怎么做?

1 个答案:

答案 0 :(得分:14)

[System.Runtime.InteropServices.DllImport("advapi32.dll", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);


    private void Button_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.InitialDirectory = "c:\\";
            dlg.Filter = "Image files (*.jpg)|*.jpg|All Files (*.*)|*.*";
            dlg.RestoreDirectory = true;

            if (dlg.ShowDialog() == true)
            {
                string filepath = dlg.FileName;
                // File.Copy(filepath, @"\\172.18.2.33\c$\Mediinfotec" + dlg.SafeFileName, true);

                IntPtr tokenHandle = new IntPtr(0);
                tokenHandle = IntPtr.Zero;

                bool returnValue = LogonUser(@"prime\mediinfo", "prime", "medi@111", 9, 0, ref tokenHandle);

                AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.UnauthenticatedPrincipal);
                WindowsIdentity wid = new WindowsIdentity(tokenHandle);
                WindowsImpersonationContext context = wid.Impersonate();

                File.Copy(filepath, @"\\172.18.2.33\c$\Mediinfotec\" + dlg.SafeFileName);

                context.Undo();
            }
        }
        catch (Exception ex)
        {

            throw;
        }

    }

它不是函数指针。在这种情况下,多余的括号无关紧要,它等效于

Dad#printMe

这是一个函数 declaration ,该C ++允许您将其放置在几乎任何地方(例如另一个函数的主体)。您的代码无法编译,因为您尝试将一个功能名称分配给另一个。

要获取指针,您需要指针语法

getMe

这一次需要括号 ,否则您将获得带有Son返回类型的函数声明!现在,任务将格式正确。