我试图在Visual Studio 2010中编译一个简单的ansi C示例,并遇到此错误编译:
错误:patchC.c(5):错误C2275:'FILE':非法使用此类型作为表达式
PROGRAM1:
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
FILE *fp;
fp = fopen("test.txt", "r");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
同一程序在gcc v4.5.2中编译时没有错误.
但是,如果我把"FILE*fp;" 从main()行开始,程序优雅地编译.
程序2:
#include <stdio.h>
FILE *fp;
int main(void) {
printf("Hello world!\n");
fp = fopen("test.txt", "r");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这种行为,任何人都可以回答?
我在交互式python shell中尝试了下面的代码并在代码的第3行得到了跟随错误,使用D-Feet我看到路径和接口存在于总线中,并且使用命令dbus-send我能够获取设备,请参阅这条消息的结尾.为什么不在python中使用这段代码?PS:我使用ubuntu 12.04,在ubuntu 11中也尝试过,同样的问题.
码:
import dbus
bus = dbus.SessionBus()
obj = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
t = dbus.Interface(obj, "org.freedesktop.NetworkManager")
t.GetDevices()
Run Code Online (Sandbox Code Playgroud)
输入错误输入第3行代码:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/pymodules/python2.7/dbus/bus.py", line 244, in get_object
follow_name_owner_changes=follow_name_owner_changes)
File "/usr/lib/pymodules/python2.7/dbus/proxies.py", line 241, in __init__
self._named_service = conn.activate_name_owner(bus_name)
File "/usr/lib/pymodules/python2.7/dbus/bus.py", line 183, in activate_name_owner
self.start_service_by_name(bus_name)
File "/usr/lib/pymodules/python2.7/dbus/bus.py", line 281, in start_service_by_name
'su', (bus_name, flags)))
File "/usr/lib/pymodules/python2.7/dbus/connection.py", line 630, in call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManager was not provided
by …
Run Code Online (Sandbox Code Playgroud)