小编Zoo*_*mIn的帖子

以下函数定义如何工作?

#include <stdio.h>
void main() {
    extern int fun(float);
    int a=fun(3.5);
    printf("%d",a);
}

int fun(aa)
float aa;
{
    return ((int)aa);
}
Run Code Online (Sandbox Code Playgroud)

虽然输出是垃圾值,但上面提到的代码块在我的Visual Studio 8编译器上编译得很好.但是当我在gcc-4.3.4上编译相同的代码时,我得到了以下编译错误:

prog.c:2:警告:'main'的返回类型不是'
int'prog.c:8:错误:'
fun'progress.c的冲突类型:3:错误:以前的'fun'声明在这里

如果它具有以下属性,它将如何工作:

  1. 在函数体开头之前有一个变量声明.
  2. 函数定义没有变量的参数类型.

c

9
推荐指数
2
解决办法
1224
查看次数

C++中未使用的字符串输入

我正在用C++编写一个程序,我应该从用户那里接收一个字符串而不在屏幕上显示它(例如:apassword).我尝试使用cingets接受字符串.但两者都会回显用户在控制台中输入的字符.

那么在C++中有没有任何函数或任何其他方法呢?

c++

9
推荐指数
1
解决办法
376
查看次数

c#数组声明语法vs c ++数组声明语法

我基本上是c ++人,现在正在学习c#.虽然数组声明我发现c#期望类型之后的方括号不同于c,c ++.c#语言规范有这样的原因吗?

.net c# c++

8
推荐指数
1
解决办法
1522
查看次数

为什么C#晚于2.0没有ISO或ECMA标准化?

我已经开始学习C#并且正在寻找标准规范,但发现大于2.0的C#版本没有通过ISO或ECMA标准化(或者我从维基百科收集).这有什么理由吗?

c# iso ecma

7
推荐指数
1
解决办法
814
查看次数

C++为什么main工作没有返回值

这个问题出于好奇; 在为测试程序编写main时,我没有返回任何内容main(没有return声明main).但我宣称主要是int main().它编译成功.

如果有任何其他函数用int返回类型编写并且实际上没有返回int,我会得到一个错误

'函数名'必须返回值

那么为什么编译器不会为main功能抱怨相同?

c++

7
推荐指数
2
解决办法
2919
查看次数

如果派生类没有覆盖该方法,应该调用哪个版本?

我正在尝试理解C#中覆盖和虚拟的需要,所以我编写了以下代码:

using System;
namespace Override
{
    class Base 
    {
        public virtual void method() 
        {
            Console.WriteLine("Base method");
        }
    }
    class Derived : Base 
    {
        public override void method()
        {
            Console.WriteLine("Derived method");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Derived d = new Derived();
            d.method();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待调用和打印"派生方法".然后我编写了以下代码而不使用虚拟/覆盖组合.

using System;
namespace Override
{
    class Base 
    {
        public void method() 
        {
            Console.WriteLine("Base method");
        }
    }
    class Derived : Base 
    {
        public void method()
        {
            Console.WriteLine("Derived method");
        }
    }
    class …
Run Code Online (Sandbox Code Playgroud)

c# polymorphism overriding

6
推荐指数
2
解决办法
7553
查看次数

ASP.NET框架是CLR还是BCL的一部分?

我开始学习.NETC#基础知识,现在我觉得我很清楚他们.

所以我想研究ASP.NET MVC网站开发框架.在我看到的大多数书籍和教程中,我只是知道它是一个Web开发框架.

谈到.NET框架,它在哪里完全适合,我的意思是它是CLR大量类的一部分还是其中的一部分BCL

.net asp.net-mvc

5
推荐指数
1
解决办法
965
查看次数

数组标识符和数组标识符地址的区别

我认为以下程序会清楚地说明我的疑问,所以我发布了该程序:

 #include <stdio.h>
int main() {

        int a[]={1,2,3,4,5};
        if(&a[0] == a)
                printf("Address of first element of an array is same as the value of array identifier\n");
        if(&a == a)
                printf("How can a value and address of an identifier be same?!");

        return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是输出链接:http : //ideone.com/KRiK0

c

3
推荐指数
1
解决办法
2975
查看次数

在源文件中引入使用 std::cout 与 std::string::size_type 之间的区别

我一直在使用using std::cout;using std::cin等,成功地将名称引入源文件,并在文件的函数中进一步使用它们。我尝试做同样的事情,std::string::size_type最终在 gcc 中 得到“错误:在非类范围内的成员的使用声明”,在 MSVC 编译器中得到“错误:在非类范围内不是有效的使用声明” 。

这是我编写的代码的链接: https: //onlinegdb.com/-c6sJuZdrV

以下是相关摘录。

#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::string::size_type;

void Part_2()
{
   string s1, s2;
   cout << "Enter the first string" << endl;
   cin >> s1;
   cout << "Enter the second string" << endl;
   cin >> s2;
   size_type s1Size = s1.size();
   size_type s2Size = s2.size();
}
Run Code Online (Sandbox Code Playgroud)

我期望using std::string::size_type;像 一样工作using …

c++ namespaces using c++11

3
推荐指数
1
解决办法
97
查看次数

自动类型转换

可能重复:
签名到无符号转换
一个谜语(在C中)

我试图理解为什么这个程序不起作用

 #include<stdio.h>

  #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
  int array[] = {23,34,12,17,204,99,16};

  int main()
  {
      int d;

      for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
          printf("%d\n",array[d+1]);

      return 0;
  }
Run Code Online (Sandbox Code Playgroud)

当我在C.中进行自动类型转换时,我遇到了这个程序.但我不明白有符号和无符号数据类型之间的转换是如何发生的.请解释一下.谢谢,哈里什

c

1
推荐指数
1
解决办法
102
查看次数

为什么数组中的每个元素都应该在c#中再次分配

以下是我编写的代码 Calc[] calculators = new Calc[10]; calculators[0].AddToSum(10);(编写相应的类和方法).但是我得到了"对象引用未设置为对象的实例"异常.然后通过一些研究我通过执行以下操作删除了异常.

for (int i = 0; i < 10; i++)
        {
            calculators[i] = new Calc();
        }  
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我们需要再次分配内存,这与c/c ++不同.这就是我在c ++中的表现:

Calculator *calc=new Calculator[10]//I know I need to check for std::bad_alloc exception
calculators[0].AddToSum(10); 
delete[] calc;
Run Code Online (Sandbox Code Playgroud)

.net c# c++ memory-management console-application

1
推荐指数
1
解决办法
247
查看次数

std::array 的数据成员在标准库实现中是公共的。为什么?

我试图研究作为 C++ 标准库一部分的容器的标准库实现。我的机器上有 Microsoft Visual Studio 2022,我可以转到std::array类的头文件定义。

当我到达类的类定义的末尾时std::array,我注意到数据成员没有声明为私有,并且上面都是公共成员函数,因此也使数据成员成为公共的。

因此,为了测试它,我尝试在std::array定义的对象中访问它main(),令我惊讶的是我可以访问它,并且它也在输出中打印了正确的值!

#include <array>
#include <iostream>
int main() 
{
    std::array<int, 5> staticArray{0,1,2,3,4};
    std::cout << staticArray._Elems[1] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

这是允许的吗?!任何人都可以破坏数据,对吗?

c++ std

1
推荐指数
1
解决办法
225
查看次数

c#中的#pragma region

在我用C#编写的以下程序中:

static void Main(string[] args)
        {
            paramsAndOptionalTest(1,2);

#pragma region CmdLineStuff
            for (int i = 0; i < args.Length; i++)
            {
                Console.WriteLine("{0}", args[i]);
            }
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }
            string[] apiargs = Environment.GetCommandLineArgs();//this will give the executable name and path too
            int exitCode = Environment.ExitCode;
            foreach (string arg in apiargs)
            {
                Console.WriteLine(arg);

            }
            Console.WriteLine("Exit Code {0}", exitCode);
            string myString = string.Format("11 in hexa is {0:x}", 11);
            System.Windows.MessageBox.Show(myString);

#pragma endregion CmdLineStuff
            ImmutableStrings();
            Console.ReadLine();
        }
Run Code Online (Sandbox Code Playgroud)

我使用了#pragma区域.但是我得到了CS1633:无法识别的#pragma指令警告.所以我认为C#编译器不能识别这个Pragma,因为在C++中它工作得很好.在C#中有没有等效的pragma?

c# pragma visual-studio-2012

-1
推荐指数
1
解决办法
2011
查看次数