小编Nic*_*ost的帖子

C带参数且无类型指示的功能仍然有效?

代码如下:

int func(param111)
{
    printf("%d\n", param111);
    return param111;
}

int main()
{
    int bla0 = func(99);
    int bla1 = func(10,99);
    int bla2 = func(11111110,99,10001);
    printf("%d, %d, %d\n", bla0, bla1, bla2);
}
Run Code Online (Sandbox Code Playgroud)

编译结果:

zbie@ubuntu:~$ gcc -Wall -g -std=c99 -O2 zeroparam.c

zeroparam.c: In function ‘func’:

zeroparam.c:2: warning: type of ‘param111’ defaults to ‘int’
Run Code Online (Sandbox Code Playgroud)

运行结果:

zbie@ubuntu:~$ ./a.out

99

10

11111110

99, 10, 11111110
Run Code Online (Sandbox Code Playgroud)

我知道如果带有零参数的func,例如int func()接受任何输入,代码应该没问题.但是这个代码如何编译并成功运行?

c

18
推荐指数
2
解决办法
4410
查看次数

填充fread的选项

假设我有这个txt文件:

"AA",3,3,3,3
"CC","ad",2,2,2,2,2
"ZZ",2
"AA",3,3,3,3
"CC","ad",2,2,2,2,2
Run Code Online (Sandbox Code Playgroud)

read.csv我可以:

> read.csv("linktofile.txt", fill=T, header=F)
  V1 V2 V3 V4 V5 V6 V7
1 AA  3  3  3  3 NA NA
2 CC ad  2  2  2  2  2
3 ZZ  2 NA NA NA NA NA
4 AA  3  3  3  3 NA NA
5 CC ad  2  2  2  2  2
Run Code Online (Sandbox Code Playgroud)

但是fread给出了

> library(data.table)

> fread("linktofile.txt")
   V1 V2 V3 V4 V5 V6 V7
1: CC ad  2  2  2 …
Run Code Online (Sandbox Code Playgroud)

r data.table

13
推荐指数
2
解决办法
3775
查看次数

SQL Left在过滤后加入丢失的行

我有一个多表连接(示例中只显示了两个),我需要保留基表中的所有行.显然,我使用LEFT JOIN来包含基表上的所有行.如果没有WHERE子句,它可以很好地工作 - 当Right表中不存在行时,Left表中的行仍然显示,而右表中的列只有0.数据集中的前两行是左表中的标签和右表中的行数,按标签分组.当标签没有分配Table2的值时,我想要的只是0.

表格1

Label | FK
----------
Blue  | 1
Red   | 2
Green | 3
Run Code Online (Sandbox Code Playgroud)

表2

Values | Color | Date
---------------------------
Dog    | 1     | 02/02/2010
Cat    | 2     | 02/02/2010
Dog    | 1     | 02/02/2010
Cat    | 2     | 02/02/2010
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT 1.Label, COUNT(2.values)
FROM Table1 1
    LEFT JOIN Table2 2 ON 1.fk = 1.pk
GROUP BY 1.Label
Run Code Online (Sandbox Code Playgroud)

结果集良好 - 没有过滤器

Blue  | 2
Red   | 2
Green | 0
Run Code Online (Sandbox Code Playgroud)

大!

我的问题是,当我添加过滤条件以从右表中删除行时,我的左连接行将其删除(将它们清零),删除左行.即使他们的计数被过滤到零,我也需要保留左行.

SELECT 1.Label, …
Run Code Online (Sandbox Code Playgroud)

sql left-join

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

QT资源文件 - 运行时不显示图像

我刚刚升级到QT Creator 5.3并创建了一个全新的QT Widgets应用程序项目,并且正在使用Microsoft VC++编译器.我所拥有的是一个添加了"logo.png"的资源文件(如果我双击它会在QT中打开),以及我正在尝试设置背景图像的标签.问题在于,无论我做什么,我都无法在程序运行时显示图像.我可以让它显示图像的唯一方法是不使用资源文件而是直接映射到文件(例如"c:/blah/blah/logo.png")

此外,如果我在UI设计器中设置背景图像,背景将显示在IDE中,但不会在我运行程序时显示.我已经尝试了20多种代码变体,包括资源文件别名以及直接将文件添加到项目中,似乎没有任何工作.

我不确定是否有一个我缺少的步骤,或者是否有一些东西我必须做才能让项目编译图像.

Resources.qrc

<RCC>
    <qresource prefix="/">
        <file>logo.png</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

loginform.cpp

QPixmap pixmap = QPixmap (":/logo.png");
ui->label->setPixmap( QPixmap(pixmap));
Run Code Online (Sandbox Code Playgroud)

Project.pro

OTHER_FILES += \
    logo.png

RESOURCES += \
    Resources.qrc
Run Code Online (Sandbox Code Playgroud)

c++ resources qt image

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

winapi找到网页对话框的子窗口标题(属性)

我使用winapi来处理网页对话框,除了excel vba编辑器,我无法访问visual studio或其他工具.另外,我对winapi的经验不足.我想点击此网页对话框的某个按钮并输入一些文字.
使用winapi我可以找到它的句柄并尝试枚举子窗口,但收到的信息不正确.

' search for child window accept button
hWndAccept = FindWindowEx(hWndColo, 0, vbNullString, vbNullString)
Debug.Print hWndAccept
Run Code Online (Sandbox Code Playgroud)

Public Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
  Dim slength As Long
  Dim wintext As String                         ' window title text length and buffer
  Dim retval As Long                            ' return value
  Dim textlen As Long

Static winnum As Integer                      ' counter keeps track of how many windows have been enumerated
winnum = winnum + 1

textlen = …
Run Code Online (Sandbox Code Playgroud)

windows excel winapi vba

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

嵌套的其他语句与ElseIf语句的性能差异

我和同事对If陈述及其表现有不同的看法.我的观点是If...ElseIf应该使用陈述.他的观点是,他不相信ElseIf,并与嵌套写的一切If陈述.

我们假设在这种情况下不能使用case语句.我想知道的是使用嵌套If..Else语句和使用If...ElseIf语句执行代码的效率如何.我知道代码可读性是一个因素,但这不应该"影响性能".

让我们看看以下示例.

使用If Else:

If () then
    'Do something'
Else
    If () then
        'Do something'
    Else
        If () then
            'Do something'
        Else
            If () then
                'Do something'
            Else
                'Do something else'
            End If
        End If
    End If
End If
Run Code Online (Sandbox Code Playgroud)

使用ElseIf:

If () then
    'Do something'
ElseIf () then
    'Do something'
ElseIf () then
    'Do something'
ElseIf () then
    'Do something'
Else
    'Do something else'
End …
Run Code Online (Sandbox Code Playgroud)

.net vb.net if-statement

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

resx在项目之间共享

我有一个名为'mySolution'的解决方案,有两个项目:

  • 项目A
  • 项目B

ProjectA包含名为"mySolutionResources.resx"的资源文件.
ProjectB引用projectA,但无法访问mySolutionResources中的资源.

经过一些研究,我发现:"资源类都标记为内部".

我现在的问题是:

如果我只想维护一个'mySolutionResources.resx',我怎样才能从projectB访问它?如果不可能,还有另一种方法吗?

.net c#

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

查找SQL中的所有整数间隔

我有一个数据库,用于存储我从外部来源引入的游戏的不同比赛信息。由于一些问题,数据库中偶尔会出现空白(可能从1个丢失的ID到几百个)。我想让程序为丢失的游戏提取数据,但是我需要首先获取该列表。

这是表格的格式:

id (pk-identity)  |  GameID (int)  |  etc.  |  etc.  
Run Code Online (Sandbox Code Playgroud)

我曾想过编写一个程序来循环运行并查询从1开始的每个GameID,但似乎应该有一种更有效的方法来获取丢失的数字。

是否有使用SQL Server的简单有效的方法来查找范围中所有丢失的数字?

sql sql-server sql-server-2008

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

删除所有默认文件权限

我有一个C#网络应用程序,它会提示管理员提供网络代理身份验证信息.我问用户是否要保存这些信息,如果他们选择是,我会在用户的唯一本地文件中加密.我想删除除创建它的用户以外的所有文件权限,但是除了能够删除该文件的所有其他用户之外.

现在,我在下面找到了MS文章,但如果我不知道首先在文件上设置的默认用户,它就无济于事.是否删除了所有文件权限?然后,我可以添加我想要为当前用户的完全访问权限设置的个人权限以及"所有用户"或"经过身份验证的用户"的删除权限,这些权限根据Windows的版本而有所不同. http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol.aspx

c# permissions file

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

Powershell子串切割

Powershell中是否有一个函数可以根据给定的格式化掩码减少值?

让我们使用例如 $test = "Value 14, Code 57"

Cut-Substring("Value $val, Code $code",$test)
Run Code Online (Sandbox Code Playgroud)

结果我想收到$val = 14$code = 57.

如果没有,是否有更强大的工具允许访问给定标签旁边的字段?

string powershell substring

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

非现有按钮上的事件

我正在研究WPF应用程序,我想动态添加按钮.例如,我有一个循环,它添加了5个新按钮.

int i;

for (i = 0; i < 5; i++)
{
    Button addButton = new Button();
    addButton.Name = "addButton" + i;
    addButton.Content = "addButton" + i;
    this.devicesButtonStackPanel.Children.Add(addButton);
}
Run Code Online (Sandbox Code Playgroud)

现在我在StackPanel中有5个按钮.

我需要每个按钮上的事件.

我想用这个:

private void addButton0_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    MessageBox.Show("test");
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

c# wpf

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